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: > > | On Wed, Jun 21, 2006 at 06:15:13PM -0300, Luiz Fernando N. Capitulino wrote: > | > | > | With get_mctrl(), the situation is slightly more complicated, because > | > | we need to atomically update tty->hw_stopped in some circumstances > | > | (that may also be modified from irq context.) Therefore, to give > | > | the driver a consistent locking picture, the spinlock is _always_ > | > | held. > | > > | > Is it too bad (wrong?) to only protect the tty->hw_stopped update > | > by the spinlock? Then the call to get_mctrl() could be protected by > | > a mutex, or is it messy? > | > | 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. > > Neither do I. :(( > > I thought we could move the 'tty->hw_stopped' update to a workqueue > but it has the same problem you explained above... > > Greg, any suggestions?
Nope, sorry, I don't know what to suggest :( greg k-h 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