mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
![]() This patch straightens out some locking issues in the USB sysfs interface: Deauthorization will destroy existing configurations. Attributes that read from udev->actconfig need to lock the device to prevent races. Likewise for the rawdescriptor values. Attributes that access an interface's current alternate setting should use ACCESS_ONCE() to obtain the cur_altsetting pointer, to protect against concurrent altsetting changes. The supports_autosuspend() attribute routine accesses values from an interface's driver, so it should lock the interface (rather than the usb_device) to protect against concurrent unbinds. Once this is done, the routine can be simplified considerably. Scalar values that are stored directly in the usb_device structure are always available. They do not require any locking. The same is true of the cached interface string descriptor, because it is not deallocated until the usb_host_interface structure is destroyed. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> CC: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
---|---|---|
.. | ||
buffer.c | ||
config.c | ||
devices.c | ||
devio.c | ||
driver.c | ||
endpoint.c | ||
file.c | ||
generic.c | ||
hcd-pci.c | ||
hcd.c | ||
hub.c | ||
hub.h | ||
Kconfig | ||
Makefile | ||
message.c | ||
notify.c | ||
otg_whitelist.h | ||
port.c | ||
quirks.c | ||
sysfs.c | ||
urb.c | ||
usb-acpi.c | ||
usb.c | ||
usb.h |