Re: [PATCH] habanalabs: use u64_to_user_ptr() for reading user pointers

From: Oded Gabbay
Date: Thu Jun 20 2019 - 05:20:48 EST


On Mon, Jun 17, 2019 at 3:41 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> We cannot cast a 64-bit integer to a pointer on 32-bit architectures
> without a warning:
>
> drivers/misc/habanalabs/habanalabs_ioctl.c: In function 'debug_coresight':
> drivers/misc/habanalabs/habanalabs_ioctl.c:143:23: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
> input = memdup_user((const void __user *) args->input_ptr,
>
> Use the macro that was defined for this purpose.
>
> Fixes: 315bc055ed56 ("habanalabs: add new IOCTL for debug, tracing and profiling")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/misc/habanalabs/habanalabs_ioctl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/misc/habanalabs/habanalabs_ioctl.c b/drivers/misc/habanalabs/habanalabs_ioctl.c
> index eeefb22023e9..b7a0eecf6b6c 100644
> --- a/drivers/misc/habanalabs/habanalabs_ioctl.c
> +++ b/drivers/misc/habanalabs/habanalabs_ioctl.c
> @@ -140,7 +140,7 @@ static int debug_coresight(struct hl_device *hdev, struct hl_debug_args *args)
> params->op = args->op;
>
> if (args->input_ptr && args->input_size) {
> - input = memdup_user((const void __user *) args->input_ptr,
> + input = memdup_user(u64_to_user_ptr(args->input_ptr),
> args->input_size);
> if (IS_ERR(input)) {
> rc = PTR_ERR(input);
> --
> 2.20.0
>

Thanks!
applied to -fixes

Oded