summaryrefslogtreecommitdiff
path: root/drivers/net/can/usb/mcba_usb.c
diff options
context:
space:
mode:
authorMartin Kelly <mkelly@xevo.com>2017-12-05 10:34:03 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-12-14 09:52:47 +0100
commitb96f17231dca5ddc2136999ca147cdeb842b2664 (patch)
tree9f12b4c48d0eace5668667f163b7bae4bd492786 /drivers/net/can/usb/mcba_usb.c
parentd04d52a6f268b635b4e69cbe28beaf5fd19228e1 (diff)
can: mcba_usb: cancel urb on -EPROTO
commit c7f33023308f3142433b7379718af5f0c2c322a6 upstream. When we unplug the device, we can see both -EPIPE and -EPROTO depending on exact timing and what system we run on. If we continue to resubmit URBs, they will immediately fail, and they can cause stalls, especially on slower CPUs. Fix this by not resubmitting on -EPROTO, as we already do on -EPIPE. Signed-off-by: Martin Kelly <mkelly@xevo.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net/can/usb/mcba_usb.c')
-rw-r--r--drivers/net/can/usb/mcba_usb.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/can/usb/mcba_usb.c b/drivers/net/can/usb/mcba_usb.c
index a884d31fe324..e0c24abce16c 100644
--- a/drivers/net/can/usb/mcba_usb.c
+++ b/drivers/net/can/usb/mcba_usb.c
@@ -593,6 +593,7 @@ static void mcba_usb_read_bulk_callback(struct urb *urb)
case -ENOENT:
case -EPIPE:
+ case -EPROTO:
case -ESHUTDOWN:
return;