Commit ba7a6458 authored by Chris Wilson's avatar Chris Wilson Committed by Daniel Vetter

drm/i915: Drop the misleading cast to the wrong user pointer type

The exec_list is of type drm_i915_gem_exec_object2 and so casting it to
a drm_i915_gem_relocation_entry is very confusing!
Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent d627b62f
...@@ -1102,8 +1102,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data, ...@@ -1102,8 +1102,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
return -ENOMEM; return -ENOMEM;
} }
ret = copy_from_user(exec_list, ret = copy_from_user(exec_list,
(struct drm_i915_relocation_entry __user *) (void __user *)(uintptr_t)args->buffers_ptr,
(uintptr_t) args->buffers_ptr,
sizeof(*exec_list) * args->buffer_count); sizeof(*exec_list) * args->buffer_count);
if (ret != 0) { if (ret != 0) {
DRM_DEBUG("copy %d exec entries failed %d\n", DRM_DEBUG("copy %d exec entries failed %d\n",
...@@ -1142,8 +1141,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data, ...@@ -1142,8 +1141,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
for (i = 0; i < args->buffer_count; i++) for (i = 0; i < args->buffer_count; i++)
exec_list[i].offset = exec2_list[i].offset; exec_list[i].offset = exec2_list[i].offset;
/* ... and back out to userspace */ /* ... and back out to userspace */
ret = copy_to_user((struct drm_i915_relocation_entry __user *) ret = copy_to_user((void __user *)(uintptr_t)args->buffers_ptr,
(uintptr_t) args->buffers_ptr,
exec_list, exec_list,
sizeof(*exec_list) * args->buffer_count); sizeof(*exec_list) * args->buffer_count);
if (ret) { if (ret) {
...@@ -1197,8 +1195,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data, ...@@ -1197,8 +1195,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
ret = i915_gem_do_execbuffer(dev, data, file, args, exec2_list); ret = i915_gem_do_execbuffer(dev, data, file, args, exec2_list);
if (!ret) { if (!ret) {
/* Copy the new buffer offsets back to the user's exec list. */ /* Copy the new buffer offsets back to the user's exec list. */
ret = copy_to_user((struct drm_i915_relocation_entry __user *) ret = copy_to_user((void __user *)(uintptr_t)args->buffers_ptr,
(uintptr_t) args->buffers_ptr,
exec2_list, exec2_list,
sizeof(*exec2_list) * args->buffer_count); sizeof(*exec2_list) * args->buffer_count);
if (ret) { if (ret) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment