On Tuesday 18 January 2005 8:26 am, Alan Stern wrote:
> 
> Khubd isn't doing anything.  But hald sure is!
> 
> It's trying to read /proc/bus/usb/devices, and in the process it locks 
> each device as it reads the information for that device.  Apparently it 
> has worked its way up to one of the devices on your card, and it holds the 
> lock on that device thus blocking usb_disconnect.

This sounds like that deadlock we were getting a lot back when the
locking inside usbcore got completely overhauled.  If there weren't
any messages from the HCD indicating that it saw the disconnect,
that could be more likely.


> It's hard to tell exactly what's going on with hald, but it seems clear 
> that hald is waiting for ohci-hcd to do something.  Presumably the reason 
> ohci-hcd isn't doing it is because the card is no longer accessible.  This 
> sounds like a problem in ohci-hcd.
> 
> Beyond that I can't help.  Dave Brownell may have some ideas.

The way OHCI classically handled a cardbus unplug was detecting it
in the IRQ handler, marking the HC as dead, and cleaning up by
killing all pending URBs.  That was how 2.4 did it, anyway.

The cleanup logic -- hc_died() and friends -- isn't working lately.
That's in usbcore now, since it's logic that all HCDs need to have.
One symptom of the cleanup failing would be URBs never returning...

It's possible that some PCMCIA changes affected this too.  I seem
to recall thinking that the cardbus/pcmcia logic should have been
notifying the OHCI code about the disconnect before the IRQ logic
saw it ... and I wouldn't swear that things would behave quite
right if someone _did_ fix that problem.  (Though in that case
it'd be more equivalent to "rmmod ohci-hcd" with live devices.)

I don't have working cardbus OHCI any more (sigh), so I couldn't
fix that even if I had time.

- Dave



-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to