Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: patch "TTY: remove tty_locked" added to tty tree | Date | Wed, 24 Aug 2011 10:46:30 +0200 |
| |
On Tuesday 23 August 2011 20:54:08 Jiri Slaby wrote: > On 08/23/2011 08:46 PM, Arnd Bergmann wrote: > > According to http://kernelnewbies.org/BigKernelLock, I concluded back then > > that tty_wait_until_sent would always be called without BTM held. Has that > > changed recently, or did I miss a caller that holds the BTM? > > Every tty_operations->close and ->hangup :).
Ah, right, I remember. The chart I did was only to prove that locking was consistent (i.e. no deadlocks), it ignored that the function needs to be called without BTM because I had incorrectly convinced myself that the wait_event_interruptible_timeout() didn't need to release it.
I think I just saw another problem: uart_close takes port->mutex while holding the BTM, then calls tty_wait_until_sent(). If this releases and reaquires the BTM, you get an AB-BA deadlock with port->mutex.
Arnd
| |