patch "xhci: Fix sleeping with spin_lock_irq() held in ASmedia 1042A" added to usb-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
xhci: Fix sleeping with spin_lock_irq() held in ASmedia 1042A
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
4ec1cd3eeeee7ccc35681270da028dbc29ca7bbdMon Sep 17 00:00:00 2001
From: Mathias Nyman <[email protected]>
Date: Mon, 18 Sep 2017 17:39:17 +0300
Subject: xhci: Fix sleeping with spin_lock_irq() held in ASmedia 1042A
workaround
The flow control workaround for ASM1042A xHC hosts sleeps between register polling. The workaround gets called in several places, among them with spin_lock_irq() held when xHC host is resumed or hoplug removed.
This was noticed as kernel panics at resume on a Dell XPS15 9550 with TB16 thunderbolt dock.
Avoid sleeping with spin_lock_irq() held, use udelay() instead
The original workaround was added to 4.9 and 4.12 stable releases, this patch needs to be applied to those as well.
--- drivers/usb/host/pci-quirks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/host/pci-quirks.c +1 -1
@@ -447,7 +447,7 @@ static int usb_asmedia_wait_write(struct pci_dev *pdev)if ((value &ASMT_CONTROL_WRITE_BIT ) ==0 )return 0 ; -usleep_range (40 ,60 ); +udelay (50 ); }dev_warn (&pdev->dev,"%s: check_write_ready timeout" , __func__);
Signature · 1 line
2.14.1