Return transferred bytes only when transfer was successful.

Signed-off-by: Aaro Koskinen <aaro.koski...@iki.fi>
---
 drivers/staging/octeon-usb/octeon-hcd.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/octeon-usb/octeon-hcd.c 
b/drivers/staging/octeon-usb/octeon-hcd.c
index 59cf921..a65b708 100644
--- a/drivers/staging/octeon-usb/octeon-hcd.c
+++ b/drivers/staging/octeon-usb/octeon-hcd.c
@@ -2162,7 +2162,11 @@ static void octeon_usb_urb_complete_callback(struct 
cvmx_usb_state *usb,
        struct usb_hcd *hcd = octeon_to_hcd(priv);
        struct device *dev = hcd->self.controller;
 
-       urb->actual_length = bytes_transferred;
+       if (likely(status == CVMX_USB_COMPLETE_SUCCESS))
+               urb->actual_length = bytes_transferred;
+       else
+               urb->actual_length = 0;
+
        urb->hcpriv = NULL;
 
        /* For Isochronous transactions we need to update the URB packet status
-- 
2.0.0

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to