diff options
author | Peter Hurley <peter@hurleysoftware.com> | 2013-06-15 13:04:48 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-07-24 01:38:34 +0200 |
commit | 36697529b5bbe36911e39a6309e7a7c9250d280a (patch) | |
tree | 5cbffa976994cb798e00d60eccb46c6cafc369a1 /ipc/compat_mq.c | |
parent | tty: Add lock/unlock ldisc pair functions (diff) | |
download | linux-36697529b5bbe36911e39a6309e7a7c9250d280a.tar.xz linux-36697529b5bbe36911e39a6309e7a7c9250d280a.zip |
tty: Replace ldisc locking with ldisc_sem
Line discipline locking was performed with a combination of
a mutex, a status bit, a count, and a waitqueue -- basically,
a rw semaphore.
Replace the existing combination with an ld_semaphore.
Fixes:
1) the 'reference acquire after ldisc locked' bug
2) the over-complicated halt mechanism
3) lock order wrt. tty_lock()
4) dropping locks while changing ldisc
5) previously unidentified deadlock while locking ldisc from
both linked ttys concurrently
6) previously unidentified recursive deadlocks
Adds much-needed lockdep diagnostics.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'ipc/compat_mq.c')
0 files changed, 0 insertions, 0 deletions