Re: [PATCH 2/8] vop: Cast pointers to uintptr_t

From: Greg KH
Date: Tue Jan 22 2019 - 05:41:34 EST


On Wed, Jan 16, 2019 at 05:32:47PM +0100, Vincent Whitchurch wrote:
> Fix these on 32-bit:
>
> vop_vringh.c:711:13: error: cast from pointer to integer of different
> size [-Werror=pointer-to-int-cast]
>
> Signed-off-by: Vincent Whitchurch <vincent.whitchurch@xxxxxxxx>
> ---
> drivers/misc/mic/vop/vop_main.c | 8 ++++----
> drivers/misc/mic/vop/vop_vringh.c | 4 ++--
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/misc/mic/vop/vop_main.c b/drivers/misc/mic/vop/vop_main.c
> index 6b212c8b78e7..5a366cf68d95 100644
> --- a/drivers/misc/mic/vop/vop_main.c
> +++ b/drivers/misc/mic/vop/vop_main.c
> @@ -497,7 +497,7 @@ static int _vop_add_device(struct mic_device_desc __iomem *d,
> vdev->desc = d;
> vdev->dc = (void __iomem *)d + _vop_aligned_desc_size(d);
> vdev->dnode = dnode;
> - vdev->vdev.priv = (void *)(u64)dnode;
> + vdev->vdev.priv = (void *)(uintptr_t)dnode;

As Joe said, use "unsigned long". uintptr_t is a userspace type, not a
kernel type.

thanks,

greg k-h