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)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 5 Sep 2017 18:21:17 +0000 (21:21 +0300)
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
drivers/gpu/drm/i915/i915_gem_execbuffer.c

index 67317b7..53718a2 100644 (file)
@@ -1538,7 +1538,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;