diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c
index 468e87b53ed26aadb86ed6b127599ea669a6aa99..66fbcbae53435d0c09d014abdf61fbb6357a851d 100644
--- a/drivers/hid/hidraw.c
+++ b/drivers/hid/hidraw.c
@@ -91,7 +91,7 @@ static ssize_t hidraw_read(struct file *file, char __user *buffer, size_t count,
 			ret = -EFAULT;
 			goto out;
 		}
-		ret += len;
+		ret = len;
 
 		kfree(list->buffer[list->tail].value);
 		list->tail = (list->tail + 1) & (HIDRAW_BUFFER_SIZE - 1);