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

Good question.  Wasn't I talking about the disconnect code
path and explaining how it's cleaned up that way ... even in
that error case?


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

QH != dev.




_______________________________________________________________

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

Reply via email to