diff options
author | hayeswang <hayeswang@realtek.com> | 2014-10-31 01:35:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-31 13:55:10 -0400 |
commit | d59c876dd61f3c151db077f9d73774e605f2b35e (patch) | |
tree | ec1a14f9476075ad411b7c05a2ed6a19a97b05c2 /drivers/net/usb/r8152.c | |
parent | e3a88f9c4f79a4d138a0ea464cfbac40ba46644c (diff) |
r8152: stop submitting intr for -EPROTO
For Renesas USB 3.0 host controller, when unplugging the usb hub which
has the RTL8153 plugged, the driver would get -EPROTO for interrupt
transfer. There is high probability to get the information of "HC died;
cleaning up", if the driver continues to submit the interrupt transfer
before the disconnect() is called.
[ 1024.197678] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.213673] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.229668] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.245661] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.261653] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.277648] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.293642] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.309638] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.325633] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.341627] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.357621] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.373615] r8152 9-1.4:1.0 eth0: intr status -71
[ 1024.383097] usb 9-1: USB disconnect, device number 2
[ 1024.383103] usb 9-1.4: USB disconnect, device number 6
[ 1029.391010] xhci_hcd 0000:04:00.0: xHCI host not responding to stop endpoint command.
[ 1029.391016] xhci_hcd 0000:04:00.0: Assuming host is dying, halting host.
[ 1029.392551] xhci_hcd 0000:04:00.0: HC died; cleaning up
[ 1029.421480] usb 8-1: USB disconnect, device number 2
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/r8152.c')
-rw-r--r-- | drivers/net/usb/r8152.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index ca3c5d5f93eb..c6554c7a8147 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c | |||
@@ -1162,6 +1162,9 @@ static void intr_callback(struct urb *urb) | |||
1162 | case -ESHUTDOWN: | 1162 | case -ESHUTDOWN: |
1163 | netif_device_detach(tp->netdev); | 1163 | netif_device_detach(tp->netdev); |
1164 | case -ENOENT: | 1164 | case -ENOENT: |
1165 | case -EPROTO: | ||
1166 | netif_info(tp, intr, tp->netdev, | ||
1167 | "Stop submitting intr, status %d\n", status); | ||
1165 | return; | 1168 | return; |
1166 | case -EOVERFLOW: | 1169 | case -EOVERFLOW: |
1167 | netif_info(tp, intr, tp->netdev, "intr status -EOVERFLOW\n"); | 1170 | netif_info(tp, intr, tp->netdev, "intr status -EOVERFLOW\n"); |