linux/drivers/usb
Mathias Nyman d797fde864 usb: hub: Fix locking issues with address0_mutex
commit 6cca13de26eea6d32a98d96d916a048d16a12822 upstream.

Fix the circular lock dependency and unbalanced unlock of addess0_mutex
introduced when fixing an address0_mutex enumeration retry race in commit
ae6dc22d2d1 ("usb: hub: Fix usb enumeration issue due to address0 race")

Make sure locking order between port_dev->status_lock and address0_mutex
is correct, and that address0_mutex is not unlocked in hub_port_connect
"done:" codepath which may be reached without locking address0_mutex

Fixes: 6ae6dc22d2d1 ("usb: hub: Fix usb enumeration issue due to address0 race")
Cc: <stable@vger.kernel.org>
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20211123101656.1113518-1-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-01 09:23:28 +01:00
..
atm
c67x00
cdns3 usb: cdns3: fix race condition before setting doorbell 2021-10-06 15:42:30 +02:00
chipidea USB: chipidea: fix interrupt deadlock 2021-11-17 09:48:27 +01:00
class USB: cdc-acm: fix break reporting 2021-10-13 10:08:16 +02:00
common Partially revert "usb: Kconfig: using select for USB_COMMON dependency" 2021-10-13 10:08:16 +02:00
core usb: hub: Fix locking issues with address0_mutex 2021-12-01 09:23:28 +01:00
dwc2 usb: dwc2: hcd_queue: Fix use of floating point literal 2021-12-01 09:23:27 +01:00
dwc3 usb: dwc3: gadget: Stop EP0 transfers during pullup disable 2021-09-03 10:08:13 +02:00
early
gadget usb: gadget: hid: fix error code in do_config() 2021-11-17 09:48:42 +01:00
host usb: max-3421: Use driver data instead of maintaining a list of bound devices 2021-11-26 10:47:23 +01:00
image
isp1760
misc USB: iowarrior: fix control-message timeouts 2021-11-17 09:48:26 +01:00
mon
mtu3 usb: mtu3: fix the wrong HS mult value 2021-09-12 08:56:41 +02:00
musb usb: musb: tusb6010: check return value after calling platform_get_resource() 2021-11-26 10:47:14 +01:00
phy usb: phy: tahvo: add IRQ check 2021-09-15 09:47:35 +02:00
renesas_usbhs usb: renesas_usbhs: Fix superfluous irqs happen after usb_pkt_pop() 2021-07-28 13:31:00 +02:00
roles
serial USB: serial: option: add Fibocom FM101-GL variants 2021-12-01 09:23:27 +01:00
storage usb-storage: Add compatibility quirk flags for iODD 2531/2541 2021-11-12 14:43:02 +01:00
typec usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts 2021-12-01 09:23:27 +01:00
usbip usbip:vhci_hcd USB port can get stuck in the disabled state 2021-09-22 12:26:35 +02:00
Kconfig
Makefile
usb-skeleton.c