linux-stable/drivers/usb
Pete Zaitcev 9de2c43acf USB: usblp: fix a hang in poll() if disconnected
Apparently an application that opens a device and calls select()
on it, will hang if the decice is disconnected. It's a little
surprising that we had this bug for 15 years, but apparently
nobody ever uses select() with a printer: only write() and read(),
and those work fine. Well, you can also select() with a timeout.

The fix is modeled after devio.c. A few other drivers check the
condition first, then do not add the wait queue in case the
device is disconnected. We doubt that's completely race-free.
So, this patch adds the process first, then locks properly
and checks for the disconnect.

Reviewed-by: Zqiang <qiang.zhang@windriver.com>
Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210303221053.1cf3313e@suzdal.zaitcev.lan
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-10 09:36:13 +01:00
..
atm drivers: usb: atm: use pr_err() and pr_warn() instead of raw printk() 2020-12-09 15:22:51 +01:00
c67x00 usb/c67x00: Replace tasklet with work 2021-01-26 18:36:37 +01:00
cdns3 In v5.12-rc1, it adds cdnsp drivers for Cadence USB3 Family, 2021-02-09 09:34:50 +01:00
chipidea usb: chipidea: tegra: Specify TX FIFO threshold in UDC SoC info 2021-01-13 11:26:34 +01:00
class USB: usblp: fix a hang in poll() if disconnected 2021-03-10 09:36:13 +01:00
common usb: common: Parse for USB SSP genXxY 2021-02-06 14:21:21 +01:00
core Kbuild updates for v5.12 2021-02-25 10:17:31 -08:00
dwc2 Merge 5.11-rc7 into usb-next 2021-02-08 09:09:27 +01:00
dwc3 usb: dwc3: qcom: Honor wakeup enabled/disabled state 2021-03-10 09:36:12 +01:00
early usb: early: ehci-dbgp: convert to readl_poll_timeout_atomic() 2020-09-25 16:29:09 +02:00
gadget USB: gadget: udc: s3c2410_udc: fix return value check in s3c2410_udc_probe() 2021-03-10 09:36:13 +01:00
host ARM updates for 5.12-rc1: 2021-02-22 14:27:07 -08:00
image USB: microtek: use set_host_byte() 2020-09-16 12:42:10 +02:00
isp1760 usb: isp1760-hcd: convert to readl_poll_timeout_atomic() 2020-09-25 16:30:05 +02:00
misc Devicetree updates for v5.12: 2021-02-22 10:05:12 -08:00
mon
mtu3 usb: mtu3: fix memory corruption in mtu3_debugfs_regset() 2020-12-07 15:26:18 +01:00
musb usb: musb: jz4740: Add missing CR to error strings 2021-02-05 10:27:18 +01:00
phy usb: phy: phy-mxs-usb: Use of_device_get_match_data() 2021-01-18 18:35:46 +01:00
renesas_usbhs usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM 2021-03-10 09:36:13 +01:00
roles device connection: Remove struct device_connection 2020-09-07 11:14:09 +02:00
serial usb: Replace lkml.org links with lore 2021-02-11 13:50:46 +01:00
storage usb: uas: Add PNY USB Portable SSD to unusual_uas 2021-01-05 14:05:10 +01:00
typec usb: typec: tcpm: Get Sink VDO from fwnode 2021-02-09 11:48:55 +01:00
usbip Merge 5.11-rc3 into usb-next 2021-01-11 08:11:26 +01:00
Kconfig
Makefile usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver 2020-12-29 12:36:13 +08:00
usb-skeleton.c