Bug 91511
Summary: | Sporadic crash/lockup in ohci-hcd io_watchdog_func() | ||
---|---|---|---|
Product: | Drivers | Reporter: | Heiko (lil_tux) |
Component: | USB | Assignee: | Greg Kroah-Hartman (greg) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | ||
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 3.18.3-4.1.3 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
lspci verbose
lsusb_verbose crash log extracted with crash tool's log |
Description
Heiko
2015-01-18 12:56:41 UTC
Created attachment 163681 [details]
lspci verbose
Created attachment 163691 [details]
lsusb_verbose
For 2109:3431 there's "bcdUSB 2.10" and kernel prints
"[ 1195.581234] hub 1-1:1.0: hub_port_status failed (err = -110)"
when querying.
Created attachment 163721 [details]
crash log extracted with crash tool's log
With help of the crash tool I was able to acquire the crash log. Looks like list corruption.
I'm by no means a kernel dev, but could it be a locking/irq issue in ohci_irq()? ohci_irq() calls ohci_work(), which calls finish_urb(), which states: " * PRECONDITION: ohci lock held, irqs blocked" But ohci_irq() seems to only spin_[un]lock(), not spin_[un]lock_irq[save|restore](). All other functions that call ohci_work() do at least spin_[un]lock_irq. So irqs could still be enabled and possibly the event triggered twice, thus the double list add? On Sun, Jan 18, 2015 at 12:56:41PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote: > https://bugzilla.kernel.org/show_bug.cgi?id=91511 > > Bug ID: 91511 > Summary: Sporadic crash/lockup in ohci-hcd io_watchdog_func() Please send to the linux-usb@vger.kernel.org mailing list. Fixed by 7d8021c9 "USB: OHCI: Fix race between ED unlink and URB submission" |