drm/i915: Annotate user relocs with __user
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 1 Sep 2017 16:54:34 +0000 (19:54 +0300)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 6 Sep 2017 17:18:33 +0000 (10:18 -0700)
Add the missing __user to the urelocs cast to fix the following sparse
warning:
i915_gem_execbuffer.c:1541:47: warning: cast removes address space of expression
i915_gem_execbuffer.c:1541:62: warning: incorrect type in argument 2 (different address spaces)
i915_gem_execbuffer.c:1541:62:    expected void const [noderef] <asn:1>*from
i915_gem_execbuffer.c:1541:62:    got char *

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Fixes: 2889caa92321 ("drm/i915: Eliminate lots of iterations over the execobjects array")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170901165434.24636-1-ville.syrjala@linux.intel.com
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> #irc
(cherry picked from commit 908a610557f4d8b46a0f82c01e31b30f5c998580)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/i915_gem_execbuffer.c

index f187ca5..50d5e24 100644 (file)
@@ -1529,7 +1529,7 @@ static int eb_copy_relocations(const struct i915_execbuffer *eb)
                                min_t(u64, BIT_ULL(31), size - copied);
 
                        if (__copy_from_user((char *)relocs + copied,
-                                            (char *)urelocs + copied,
+                                            (char __user *)urelocs + copied,
                                             len)) {
                                kvfree(relocs);
                                err = -EFAULT;