summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2023-01-31 15:49:04 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-03-03 11:52:25 +0100
commitc87fb861ec185fdc578b4fdc6a05920b6a843840 (patch)
treedebc0e879b58420add6502f0e6d09b4c5b5602ed /Documentation
parentc49bd6c2dd1bd67abd2b638ae10deb65c4f4031e (diff)
downloadlinux-riscv-c87fb861ec185fdc578b4fdc6a05920b6a843840.tar.gz
linux-riscv-c87fb861ec185fdc578b4fdc6a05920b6a843840.tar.bz2
linux-riscv-c87fb861ec185fdc578b4fdc6a05920b6a843840.zip
USB: core: Don't hold device lock while reading the "descriptors" sysfs file
commit 45bf39f8df7f05efb83b302c65ae3b9bc92b7065 upstream. Ever since commit 83e83ecb79a8 ("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>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions