drm/i915: Fix copy_to_user usage for pipe_crc
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 3 Aug 2016 15:22:57 +0000 (08:22 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Fri, 5 Aug 2016 16:39:47 +0000 (09:39 -0700)
Copy to user return the number of bytes it couldn't write
and zero on success. So any number different than 0 should
be considered a fault, not only when it doesn't write
the full size.

v2: fixed the inverted logic. (Ville)

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/i915_debugfs.c

index 0620a84d00ca0059a531ef8ca4477f9a09b63537..9bd41581b592e0503e7839cf2d333791a9067752 100644 (file)
@@ -3625,7 +3625,6 @@ i915_pipe_crc_read(struct file *filep, char __user *user_buf, size_t count,
        while (n_entries > 0) {
                struct intel_pipe_crc_entry *entry =
                        &pipe_crc->entries[pipe_crc->tail];
-               int ret;
 
                if (CIRC_CNT(pipe_crc->head, pipe_crc->tail,
                             INTEL_PIPE_CRC_ENTRIES_NR) < 1)
@@ -3642,8 +3641,7 @@ i915_pipe_crc_read(struct file *filep, char __user *user_buf, size_t count,
 
                spin_unlock_irq(&pipe_crc->lock);
 
-               ret = copy_to_user(user_buf, buf, PIPE_CRC_LINE_LEN);
-               if (ret == PIPE_CRC_LINE_LEN)
+               if (copy_to_user(user_buf, buf, PIPE_CRC_LINE_LEN))
                        return -EFAULT;
 
                user_buf += PIPE_CRC_LINE_LEN;