Explorar el Código

staging: octeon-usb: return transferred bytes only on success

Return transferred bytes only when transfer was successful.

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Aaro Koskinen hace 11 años
padre
commit
8dcf4ecea9
Se han modificado 1 ficheros con 5 adiciones y 1 borrados
  1. 5 1
      drivers/staging/octeon-usb/octeon-hcd.c

+ 5 - 1
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