summaryrefslogtreecommitdiff
path: root/drivers/media/usb/gspca/kinect.c
diff options
context:
space:
mode:
authorAntonio Ospite <ospite@studenti.unina.it>2013-12-30 20:41:45 +0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-02-28 21:37:04 +0400
commit840d94eacea399b3bfe2ebcbf75e0dec202cd922 (patch)
tree2c906b0e6471582d63193191cc05d3629e78a4f6 /drivers/media/usb/gspca/kinect.c
parent340a30c5148d162ea054fd80112b864f14db9138 (diff)
downloadlinux-840d94eacea399b3bfe2ebcbf75e0dec202cd922.tar.xz
[media] gspca_kinect: fix kinect_read() error path
The error checking code relative to the invocations of kinect_read() does not return the actual return code of the function just called, it returns "res" which still contains the value of the last invocation of a previous kinect_write(). Return the proper value, and while at it also report with -EREMOTEIO the case of a partial transfer. Reported-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Antonio Ospite <ospite@studenti.unina.it> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/usb/gspca/kinect.c')
-rw-r--r--drivers/media/usb/gspca/kinect.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/usb/gspca/kinect.c b/drivers/media/usb/gspca/kinect.c
index 3773a8a745df..48084736f882 100644
--- a/drivers/media/usb/gspca/kinect.c
+++ b/drivers/media/usb/gspca/kinect.c
@@ -158,7 +158,7 @@ static int send_cmd(struct gspca_dev *gspca_dev, uint16_t cmd, void *cmdbuf,
PDEBUG(D_USBO, "Control reply: %d", res);
if (actual_len < sizeof(*rhdr)) {
pr_err("send_cmd: Input control transfer failed (%d)\n", res);
- return res;
+ return actual_len < 0 ? actual_len : -EREMOTEIO;
}
actual_len -= sizeof(*rhdr);