[PATCH] mceusb: Return without resubmitting URB in case of -EPROTO error.

From: Rajat Asthana
Date: Wed Aug 18 2021 - 16:31:54 EST


Syzkaller reported a warning called "rcu detected stall in dummy_timer".

The error seems to be an error in mceusb_dev_recv(). In the case of
-EPROTO error, the routine immediately resubmits the URB. Instead it
should return without resubmitting URB.

Reported-by: syzbot+4d3749e9612c2cfab956@xxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Rajat Asthana <rajatasthana4@xxxxxxxxx>
---
drivers/media/rc/mceusb.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index 5642595a057e..8870c4e6c5f4 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -1386,6 +1386,7 @@ static void mceusb_dev_recv(struct urb *urb)
case -ECONNRESET:
case -ENOENT:
case -EILSEQ:
+ case -EPROTO:
case -ESHUTDOWN:
usb_unlink_urb(urb);
return;
--
2.32.0