Re: FW: OHCI hangs after failing to free resources

Alan Stern <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
On Wed, 27 Jun 2007, Mike Nuss wrote:

> It's been a while since I've written about this issue. We were able to
> sidestep it for our purposes by slightly modifying the OHCI driver to
> check a "force_unlinks" flag during finish_unlinks.
> 
> We set that flag when we detect that one of our devices seems to have
> not sent any data for the past 30 seconds (on the device side, they send
> keepalive packets at least that often now), then our device driver sets
> the force_unlinks flag and sends a command to the device to reset
> itself. The device goes away, but instead of hanging, the OHCI
> code sees that the flag is set, and assumes that the TD it's waiting for
> is never going to show up on the donelist, so it just frees it and goes
> on. Then the device finishes resetting and comes back.
> 
> Obviously this isn't a general purpose fix, but it hasn't caused any
> problems for us over the past few months. However, I seem to have found
> a way to reproduce the issue more reliably, so I'm still interested in
> trying to find the source of the problem. Which structures would you
> like me to dump? If I dump just the affected read endpoint, here's the
> output:
> 
> ohci_hcd 0000:00:13.0: read endpoint, ed c2d912c0 state 0x0 type intr;
> next ed 00000000
> ohci_hcd 0000:00:13.0:   info 08405110 MAX=64 DQ SKIP EP=2-IN DEV=16
> ohci_hcd 0000:00:13.0:   tds: head 02ba7300 DATA0 tail 02ba7300
> ohci_hcd 0000:00:13.0:   -> td c2ba7340; urb c272ca40 index 0; hw next
> td 00000000
> ohci_hcd 0000:00:13.0:      info 02140000 CC=0 DATA0 DI=0 IN R
> ohci_hcd 0000:00:13.0:      cbp 02dbe37a be 02dbe39f (len 38)
> 
> It seems suspicious to me that hwNextTD is null.
> 
> Let me know what else I can provide.

I don't have time to look at this now, but I'll get back to you next 
week.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.