Messages in this thread | | | Date | Wed, 17 Oct 2007 11:56:21 -0400 (EDT) | From | Alan Stern <> | Subject | Re: [Linux-usb-users] OHCI root_port_reset() deadly loop... |
| |
On Tue, 16 Oct 2007, Greg KH wrote:
> But perhaps we can order the hardware init stuff from all three together > like this into a separate module they all depend on. In a way, that's > what the lock tried to do, right? Are we just not catching all places > we could have hardware being talked to by two modules at the same time?
No, we do catch the one place where it happens. The problem seems to be that the hardware update takes some time. That is, on one side we take the write lock, talk to the EHCI hardware, and drop the write lock. On the other side we take the read lock, talk to the OHCI hardware, and drop the read lock. Nevertheless, the interference occurs. David B.'s interpretation is that the hardware's change of state takes more time than the CPU uses in manipulating locks and switching tasks. Hence his suggestion for adding a delay.
Alan Stern
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |