>>>>> On Tue, 09 Mar 2004 09:36:53 -0800, David Brownell <[EMAIL PROTECTED]> said:
David.B> David Mosberger wrote: >> How about something along the following lines? The patch is >> relative to 2.6.4-rc1. What it does is add a new state >> ED_DESCHEDULED, which is treated exactly like ED_IDLE, except >> that in this state, the HC may still be referring to the ED in >> question. Thus, if David.B> Sounds exactly like ED_UNLINK -- except maybe that it's not David.B> been put onto ed_rm_list (with ED_DEQUEUE set). David.B> Why add another state? So you can tell them apart. See ohci_endpoint_disable(). You seem to think small races are OK. I disagree. The smaller the race, the harder it is to debug (and yes, it _will_ bite you eventually). With my patch, you're _guaranteed_ that ED_IDLE means the HC doesn't refer to the ED anymore so you can free the memory and do whatever you want without worry about potentially causing the HC to do something bad. David.B> But some parts worry me. Like changing that code to BUG() David.B> on a driver behavior that's perfectly reasonable; With my patch, the only reason you enter ED_UNLINK state is ohci_endpoint_disable(). If you try to ohci_urb_enqueue() on an ED in this state, it will fail, so I don't there is a problem (I see now that I forgot to set the error-code for this case, that's obviously something that needs to be fixed). But perhaps you had different semantics in mind for ED_UNLINK? David.B> removing some of the PCI posting, which makes it easier for David.B> the HC and its driver to disagree about schedule status. Meaning what? Please explain what sequence of events would cause problems that could be solved by flushing the posted writes. AFAICT, the flushes are just expensive NO-OPs in this particular case. --david ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel