Richard Curnow wrote:
One problem I'm hitting is in EHCI, I was wondering if you had any ideas
as to what I could start looking at, annotating etc to debug this. The
problem seems to be here:
static inline void list_del(struct list_head *entry)
{
__list_del(entry->prev, entry->next); <<<<<======= HERE
entry->next = LIST_POISON1;
entry->prev = LIST_POISON2;
}
Hmm, I'll have to look at this some more. Some folk have been
reporting list_del() problems for QTDs on SMP hardware; in fact
there's now a bug on this at bugme.osdl.org and you might be
hitting something similar.
Also, some folk working on an embedded EHCI have reported that
there's a bit of an issue in the restart-after-halt logic ...
adding a small delay between modifying the QH and clearing the
HALT bit would help when the controller can read "halt cleared"
but associate that with the pre-modification QH contents.
BTW the scenario I'm using to trigger this is to plug an external USB2
hard disk into a USB2 PCI card and run e2fsck on one of its partitions.
Note that the following things appear to work OK:
Back when I was doing regular EHCI testing, e2fsck was one of the
checks I used. Also mkfs, preferably with badblocks ... those two
things were the best ways to throw deep irregular I/O queues, often
with some faults (badblocks!) at an EHCI controller.
- Dave
-------------------------------------------------------
This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference
Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer
Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA
REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel