From: Zhi Han Date: Thu, 17 Dec 2020 16:13:02 +0000 (+0100) Subject: mt7601u: process URBs in status EPROTO properly X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=0e40dbd56d67a5b01b13f4bfb62b470cd99125cd;p=linux.git mt7601u: process URBs in status EPROTO properly When the usb device being plugged out, before the usb_driver:disconnect called by e.g workqueue, it is possible that some URBs are still in processing, and being marked as EPROTO in host controller. Those URBs should not be scheduled in complete_rx callback function to get further processing. Signed-off-by: Zhi Han Acked-by: Jakub Kicinski Signed-off-by: Kalle Valo Link: https://lore.kernel.org/r/20201217161302.GA12562@E480 --- diff --git a/drivers/net/wireless/mediatek/mt7601u/dma.c b/drivers/net/wireless/mediatek/mt7601u/dma.c index 5f99054f535b4..98733c23d408b 100644 --- a/drivers/net/wireless/mediatek/mt7601u/dma.c +++ b/drivers/net/wireless/mediatek/mt7601u/dma.c @@ -192,6 +192,7 @@ static void mt7601u_complete_rx(struct urb *urb) case -ECONNRESET: case -ESHUTDOWN: case -ENOENT: + case -EPROTO: return; default: dev_err_ratelimited(dev->dev, "rx urb failed: %d\n",