linux-stable/drivers/usb
Alan Stern 1bcb238c54 USB: core: Don't hold device lock while reading the "descriptors" sysfs file
commit 45bf39f8df upstream.

Ever since commit 83e83ecb79 ("usb: core: get config and string
descriptors for unauthorized devices") was merged in 2013, there has
been no mechanism for reallocating the rawdescriptors buffers in
struct usb_device after the initial enumeration.  Before that commit,
the buffers would be deallocated when a device was deauthorized and
reallocated when it was authorized and enumerated.

This means that the locking in the read_descriptors() routine is not
needed, since the buffers it reads will never be reallocated while the
routine is running.  This locking can interfere with user programs
trying to read a hub's descriptors via sysfs while new child devices
of the hub are being initialized, since the hub is locked during this
procedure.

Since the locking in read_descriptors() hasn't been needed for over
nine years, we can remove it.

Reported-and-tested-by: Troels Liebe Bentsen <troels@connectedcars.dk>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
CC: stable@vger.kernel.org
Link: https://lore.kernel.org/r/Y9l+wDTRbuZABzsE@rowland.harvard.edu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-03-03 11:56:18 +01:00
..
atm usb: move from strlcpy with unused retval to strscpy 2022-08-19 11:08:54 +02:00
c67x00
cdns3 usb: cdns3: remove fetched trb from cache before dequeuing 2023-01-17 16:35:47 +01:00
chipidea usb: chipidea: core: fix possible constant 0 if use IS_ERR(ci->role_switch) 2023-01-17 17:05:02 +01:00
class USB: make devnode() callback in usb_class_driver take a const * 2022-10-20 12:11:56 +02:00
common Revert "usb: ulpi: defer ulpi_register on ulpi_read_id timeout" 2022-12-28 11:22:30 +01:00
core USB: core: Don't hold device lock while reading the "descriptors" sysfs file 2023-03-03 11:56:18 +01:00
dwc2 usb: dwc2: power on/off phy for peripheral mode in dual-role mode 2022-12-08 16:50:56 +01:00
dwc3 usb: dwc3: pci: add support for the Intel Meteor Lake-M 2023-03-03 11:56:17 +01:00
early usb: early: xhci-dbc: use console_is_registered() 2022-12-02 11:25:02 +01:00
fotg210 usb: gadget: udc: do not clear gadget driver.bus 2023-02-02 09:41:17 +01:00
gadget usb: gadget: u_serial: Add null pointer check in gserial_resume 2023-03-03 11:56:17 +01:00
host USB / Thunderbolt fixes for 6.2-rc5 2023-01-21 11:10:03 -08:00
image usb/image: fix repeated words in comments 2022-07-27 14:33:53 +02:00
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-05-19 18:10:59 +02:00
misc USB: misc: iowarrior: fix up header size for USB_DEVICE_ID_CODEMERCS_IOW100 2023-01-20 15:06:23 +01:00
mon usb: mon: make mmapped memory read only 2022-09-22 15:52:29 +02:00
mtu3 usb: mtu3: fix failed runtime suspend in host only mode 2022-09-30 13:55:48 +02:00
musb usb: musb: fix error return code in omap2430_probe() 2023-01-17 17:05:58 +01:00
phy usb: isp1301-omap: Convert to i2c's .probe_new() 2022-11-22 17:33:27 +01:00
renesas_usbhs usb: renesas: Fix refcount leak bug 2022-06-21 16:39:03 +02:00
roles Driver Core changes for 6.2-rc1 2022-12-16 03:54:54 -08:00
serial USB: serial: option: add support for VW/Skoda "Carstick LTE" 2023-03-03 11:56:17 +01:00
storage usb-storage: apply IGNORE_UAS only for HIKSEMI MD202 on RTL9210 2023-01-17 16:37:04 +01:00
typec usb: typec: pd: Remove usb_suspend_supported sysfs from sink PDO 2023-03-03 11:56:18 +01:00
usbip Including fixes from bpf, netfilter and can. 2022-12-21 08:41:32 -08:00
Kconfig usb: fotg210: Collect pieces of dual mode controller 2022-11-09 12:38:09 +01:00
Makefile usb: fotg210: Collect pieces of dual mode controller 2022-11-09 12:38:09 +01:00
usb-skeleton.c usb: add usb_set_intfdata() documentation 2022-11-29 08:56:09 +01:00