mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
32a0721c66
According to Greg KH, it has been generally agreed that when a USB driver encounters an unknown error (or one it can't handle directly), it should just give up instead of going into a potentially infinite retry loop. The three codes -EPROTO, -EILSEQ, and -ETIME fall into this category. They can be caused by bus errors such as packet loss or corruption, attempting to communicate with a disconnected device, or by malicious firmware. Nowadays the extent of packet loss or corruption is negligible, so it should be safe for a driver to give up whenever one of these errors occurs. Although the yurex driver handles -EILSEQ errors in this way, it doesn't do the same for -EPROTO (as discovered by the syzbot fuzzer) or other unrecognized errors. This patch adjusts the driver so that it doesn't log an error message for -EPROTO or -ETIME, and it doesn't retry after any errors. Reported-and-tested-by: syzbot+b24d736f18a1541ad550@syzkaller.appspotmail.com Signed-off-by: Alan Stern <stern@rowland.harvard.edu> CC: Tomoki Sekiyama <tomoki.sekiyama@gmail.com> CC: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/Pine.LNX.4.44L0.1909171245410.1590-100000@iolanthe.rowland.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
sisusbvga | ||
adutux.c | ||
appledisplay.c | ||
chaoskey.c | ||
cypress_cy7c63.c | ||
cytherm.c | ||
ehset.c | ||
emi26.c | ||
emi62.c | ||
ezusb.c | ||
ftdi-elan.c | ||
idmouse.c | ||
iowarrior.c | ||
isight_firmware.c | ||
Kconfig | ||
ldusb.c | ||
legousbtower.c | ||
lvstest.c | ||
Makefile | ||
trancevibrator.c | ||
usb251xb.c | ||
usb3503.c | ||
usb4604.c | ||
usb_u132.h | ||
usblcd.c | ||
usbsevseg.c | ||
usbtest.c | ||
uss720.c | ||
yurex.c |