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;
--