Re: [linux-usb-devel] Re: Deadlocking problem

2005-07-01 Thread Alan Stern
On Fri, 1 Jul 2005, Matthias Urlichs wrote: > > But during a normal rmmod the HC _is_ running. So how does this > > end up solving your problem? Does ohci-hcd somehow learn that the > > controller is _not_ running? > > > During a normal rmmod the HC is running; however, PCMCIA is special in > t

Re: [linux-usb-devel] Re: Deadlocking problem

2005-07-01 Thread Matthias Urlichs
Hi, Alan Stern: > I get it. And that call to finish_unlinks is made from within the > ohci_endpoint_disable routine. It looks like the "clean up the list > without looking at the hardware state" happens only when the HC isn't > running. Right. > But during a normal rmmod the HC _is_ running.

Re: [linux-usb-devel] Re: Deadlocking problem

2005-07-01 Thread Alan Stern
On Thu, 30 Jun 2005, Matthias Urlichs wrote: > > usb_disconnect does not disable the chip -- that happens after it returns. > > The only way usb_disconnect interacts with the controller is through the > > hcd_endpoint_disable routine. That in turn does a normal unlink (which > > you say will no

Re: [linux-usb-devel] Re: Deadlocking problem

2005-06-30 Thread Matthias Urlichs
Hi, Alan Stern: > There's one other thing I forgot to ask about... Do you know if the URB > that is refusing to unlink was sent to the root hub, or was it sent to an > external device? The unlink operation differs between those two cases. > It's queued to the device (USB_DT_DEVICE). -- Matt

Re: [linux-usb-devel] Re: Deadlocking problem

2005-06-30 Thread Alan Stern
On Thu, 30 Jun 2005, Alan Stern wrote: > On Thu, 30 Jun 2005, Matthias Urlichs wrote: > > > > If the unlink is broken then there's pretty much nothing you can do. The > > > HCD drivers won't exit while there are still outstanding URBs. It > > > doesn't > > > matter what's locked or unlocked.

Re: [linux-usb-devel] Re: Deadlocking problem

2005-06-30 Thread Matthias Urlichs
Hi, Alan Stern: > usb_disconnect does not disable the chip -- that happens after it returns. > The only way usb_disconnect interacts with the controller is through the > hcd_endpoint_disable routine. That in turn does a normal unlink (which > you say will not work) and then calls the HCD's endp

Re: [linux-usb-devel] Re: Deadlocking problem

2005-06-30 Thread Alan Stern
On Thu, 30 Jun 2005, Matthias Urlichs wrote: > > If the unlink is broken then there's pretty much nothing you can do. The > > HCD drivers won't exit while there are still outstanding URBs. It doesn't > > matter what's locked or unlocked. > > > Umm, not exactly. ;-) If the hub is not locked,

Re: [linux-usb-devel] Re: Deadlocking problem

2005-06-30 Thread Matthias Urlichs
Hi, Alan Stern: > Did you really mean that the transfer _did_ time out, but chip issues > prevent the _unlink_ from working? > Exactly. The URBs sit on the ed_rm queue, and they stay there. :-/ > If the unlink is broken then there's pretty much nothing you can do. The > HCD drivers won't exit

Re: [linux-usb-devel] Re: Deadlocking problem

2005-06-30 Thread Alan Stern
On Thu, 30 Jun 2005, Matthias Urlichs wrote: > Hi, Alan Stern schrub am Wed, 29 Jun 2005 10:46:39 -0400: > > > I'm afraid there's no way around it. Timeouts _have_ to work; pretty much > > every device driver depends on them crucially. The best way to fix this > > is to take care of those bro

[linux-usb-devel] Re: Deadlocking problem

2005-06-29 Thread Matthias Urlichs
Hi, Alan Stern schrub am Wed, 29 Jun 2005 10:46:39 -0400: > I'm afraid there's no way around it. Timeouts _have_ to work; pretty much > every device driver depends on them crucially. The best way to fix this > is to take care of those broken OPTi chip issues you mentioned. > And the best way