From: Jiri Slaby Beside the emitted warning, the added cast (u64 -> unsigned) strips out part of address on 64 bit. Cast to unsigned long instead. Signed-off-by: Jiri Slaby Cc: Thomas Hellstrom Cc: Dave Airlie Signed-off-by: Andrew Morton --- drivers/char/drm/i915_dma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/char/drm/i915_dma.c~drm-i915-fix-pointer-strip drivers/char/drm/i915_dma.c --- a/drivers/char/drm/i915_dma.c~drm-i915-fix-pointer-strip +++ a/drivers/char/drm/i915_dma.c @@ -900,7 +900,7 @@ int i915_validate_buffer_list(struct drm buffers[buf_count] = NULL; - if (copy_from_user(&arg, (void __user *)(unsigned)data, sizeof(arg))) { + if (copy_from_user(&arg, (void __user *)(unsigned long)data, sizeof(arg))) { ret = -EFAULT; goto out_err; } @@ -951,7 +951,7 @@ int i915_validate_buffer_list(struct drm arg.handled = 1; arg.d.rep = rep; - if (copy_to_user((void __user *)(unsigned)data, &arg, sizeof(arg))) + if (copy_to_user((void __user *)(unsigned long)data, &arg, sizeof(arg))) return -EFAULT; data = next; _