drm/vc4: Start using u64_to_user_ptr. 03/148503/2
authorEric Anholt <eric@anholt.net>
Tue, 25 Jul 2017 18:27:16 +0000 (11:27 -0700)
committerInki Dae <inki.dae@samsung.com>
Fri, 8 Sep 2017 05:02:43 +0000 (14:02 +0900)
Chris Wilson pointed out this little cleanup in a review of new code,
so let's fix up the code I was copying from.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-1-eric@anholt.net
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(cherry picked from commit 95d7cbcb6fbe3885d7a968cc86b98a08466742af)

[inki.dae: apply from rpi3-4.9.y]
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Change-Id: Ie95aa6eebe152b453c3d6f5dd330c79af3b12353

drivers/gpu/drm/vc4/vc4_gem.c

index 066e7009358cd28df95fe45cd3204f71e8a21c55..7e90ea1702994531a734b322393021364d5284b3 100644 (file)
@@ -118,7 +118,7 @@ vc4_get_hang_state_ioctl(struct drm_device *dev, void *data,
                bo_state[i].size = vc4_bo->base.base.size;
        }
 
-       if (copy_to_user((void __user *)(uintptr_t)get_state->bo,
+       if (copy_to_user(u64_to_user_ptr(get_state->bo),
                         bo_state,
                         state->bo_count * sizeof(*bo_state)))
                ret = -EFAULT;
@@ -549,8 +549,7 @@ vc4_cl_lookup_bos(struct drm_device *dev,
                goto fail;
        }
 
-       if (copy_from_user(handles,
-                          (void __user *)(uintptr_t)args->bo_handles,
+       if (copy_from_user(handles, u64_to_user_ptr(args->bo_handles),
                           exec->bo_count * sizeof(uint32_t))) {
                ret = -EFAULT;
                DRM_ERROR("Failed to copy in GEM handles\n");
@@ -626,21 +625,21 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec)
        exec->shader_state_size = args->shader_rec_count;
 
        if (copy_from_user(bin,
-                          (void __user *)(uintptr_t)args->bin_cl,
+                          u64_to_user_ptr(args->bin_cl),
                           args->bin_cl_size)) {
                ret = -EFAULT;
                goto fail;
        }
 
        if (copy_from_user(exec->shader_rec_u,
-                          (void __user *)(uintptr_t)args->shader_rec,
+                          u64_to_user_ptr(args->shader_rec),
                           args->shader_rec_size)) {
                ret = -EFAULT;
                goto fail;
        }
 
        if (copy_from_user(exec->uniforms_u,
-                          (void __user *)(uintptr_t)args->uniforms,
+                          u64_to_user_ptr(args->uniforms),
                           args->uniforms_size)) {
                ret = -EFAULT;
                goto fail;