| From a8ee406b27190ef9b43deb39074cb1e97f4db244 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 18 Aug 2021 22:31:10 +0200 |
| Subject: media: mceusb: return without resubmitting URB in case of -EPROTO |
| error. |
| |
| From: Rajat Asthana <rajatasthana4@gmail.com> |
| |
| [ Upstream commit 476db72e521983ecb847e4013b263072bb1110fc ] |
| |
| 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@syzkaller.appspotmail.com |
| Signed-off-by: Rajat Asthana <rajatasthana4@gmail.com> |
| Signed-off-by: Sean Young <sean@mess.org> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 c68e52c17ae13..31e56f4f34791 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.33.0 |
| |