Re: [linux-usb-devel] 2.6.19-rc1-mm1 - locks when using "dd bs=1M"from card reader
From: Helge Hafting
Date: Fri Oct 20 2006 - 07:47:54 EST
Alan Stern wrote:
[...]
After looking at the debugging output, no. That "invalid opcode" is a red
herring. What you encountered this time was a BUG() in the source code of
start_unlink_async() in drivers/usb/host/ehci-q.c:
#ifdef DEBUG
assert_spin_locked(&ehci->lock);
if (ehci->reclaim
|| (qh->qh_state != QH_STATE_LINKED
&& qh->qh_state != QH_STATE_UNLINK_WAIT)
)
BUG ();
#endif
You could try putting a printk() just before the BUG() to display the
values of ehci->reclaim and qh->qh_state. Maybe also change the BUG() to
ehci->reclaim=0
qh->qh_state=5
WARN(), which might help prevent your system from crashing so badly.
WARN didn't help much. I then got the warning twice, followed by
another BUG:
process klogd
ehci_irq
usb_hcd_irq
handle_IRQ_event
handle_fasteio_irq
do_IRQ
So I set it back to BUG. Crashing hard isn't so bad when I
know what is coming - I simply remount everything synchronously
before trying.
I hope these printk's help. I can add more of them too, if needed.
Big transfers seems to bring out the worst - I always get the
crash on the first megabyte now.
During boot I get lots of those "Hardware error, end-of-data detected"
messages, but I've never seen it crash during bootup.
Helge Hafting
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/