The intent here was to return an error code, but instead the code
returns the number of bytes remaining (that weren't copied).

Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
index 97f23ab..3f63435 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
@@ -150,6 +150,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
        ret = copy_from_user(clips, clips_ptr, num_clips * sizeof(*clips));
        if (ret) {
                DRM_ERROR("Failed to copy clip rects from userspace.\n");
+               ret = -EFAULT;
                goto out_no_copy;
        }

@@ -241,6 +242,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void 
*data,
        ret = copy_from_user(clips, clips_ptr, num_clips * sizeof(*clips));
        if (ret) {
                DRM_ERROR("Failed to copy clip rects from userspace.\n");
+               ret = -EFAULT;
                goto out_no_copy;
        }

Reply via email to