Messages in this thread Patch in this message | | | From | David Brownell <> | Subject | Re: USB OOPS 2.6.25-rc2-git1 | Date | Tue, 19 Feb 2008 16:19:54 -0800 |
| |
On Tuesday 19 February 2008, David Miller wrote: > From: Andre Tomt <andre@tomt.net> > Date: Tue, 19 Feb 2008 16:19:08 +0100 > > > Got this on a serial console today, using 2.6.25-rc2-git1. Machine was > > not doing anything interesting at the time, but has its / and kernel on > > a usb-storage device (usb pen drive). > > > > Intel ICH8R chipset (and USB controller), running x86_64 kernel. I'll > > post .config and some additional info when I get home later if it isn't > > obvious what broke. > > FWIW, I've seen a near identical crash on my Niagara system.
Please try that diagnostic patch I sent ... with CONFIG_USB_DEBUG.
Near as I can tell this is caused by some hardware oddity that needs to be worked around. We seem to be at stage where we've fixed some problems, nudging code paths around so another one shows up, and have incidentally had a new silicion-specific hardware erratum reported in this area. So more info is needed...
A quick anti-oops patch is appended, it should work OK on top of that diagnostic patch, but won't necessarily resolve the underlying problem.
- Dave
--- g26.orig/drivers/usb/host/ehci-q.c 2008-02-19 16:15:04.000000000 -0800 +++ g26/drivers/usb/host/ehci-q.c 2008-02-19 16:15:59.000000000 -0800 @@ -993,6 +993,11 @@ static void end_unlink_async (struct ehc iaa_watchdog_done(ehci); + if (!qh) { + WARN_ON(1); + return; + } + // qh->hw_next = cpu_to_hc32(qh->qh_dma); qh->qh_state = QH_STATE_IDLE; qh->qh_next.qh = NULL;
| |