On Mon, 2006-06-26 at 15:26 -0700, Greg KH wrote: > On Fri, Jun 23, 2006 at 02:28:42PM -0300, Luiz Fernando N. Capitulino wrote: > > On Thu, 22 Jun 2006 09:29:40 +0100 > > Russell King <[EMAIL PROTECTED]> wrote: > > > > | > > | Consider this scenario with what you're proposing: > > | > > | thread irq > > | > > | take mutex > > | get_mctrl > > | cts changes state > > | take port lock > > | mctrl state read > > | tty->hw_stopped changed state > > | release port lock > > | releaes mutex > > | take port lock > > | update tty->hw_stopped > > | release port lock > > | > > | Now, tty->hw_stopped does not reflect the hardware state, which will be > > | buggy and can cause a loss of transmission. > > | > > | I'm not sure what to suggest on this one since for USB drivers you do > > | need to be able to sleep in this method... but for UARTs you must not.
What about this ugly fragment? (assuming get_mctrl not called from IRQ) take mutex take port lock again: save local copy of icount release port lock get_mctrl take port lock if (icount changed) goto again update tty->hw_stopped release port lock release mutex -- Paul Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel