On Mon, May 13, 2002, David Brownell <[EMAIL PROTECTED]> wrote: > > > That summary _does_ assume a working system. ... > > > > I don't see what's really different? If the HC halted due to error, > > wouldn't the devices disappear that are on the root hub? > > What, you mean as if by magic without the HCD doing anything > at all? Hardly not! (Peals of laughter.) Absolutely everything > needs to be cleaned up "by hand" as it were.
What I meant was why is this any different from disconnecting a device? Everything is cleaned up fine in that code path. > > > > When you remove all of that extra code, it appears to reduce down to a > > > > single pci_pool_free call. Is that correct? > > > > > > No extra code ... that's wrong. As I said, it's possible that a QH > > > may still be linked to the hardware after its URBs are unlinked. > > > (Or for OHCI, an ED.) > > > > > > We know that (modulo bugs) all URBs will be unlinked when > > > that code is called. We can't know that all QHs will be, since > > > that involves a hardware handshake that for various reasons > > > may not have been completed -- or even started -- by then. > > > > Then don't decrement the reference count until the QH is fully unlinked. > > I guess I don't see how what you suggest relates to anything. > In what sense is that not being done already? Because when it is done, you'll decrement the reference count and then you'll finally get your ->deallocate() callback. No muss, no fuss. Works for me(tm) JE _______________________________________________________________ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel