]> asedeno.scripts.mit.edu Git - linux.git/commit
tty/ldsem: Add lockdep asserts for ldisc_sem
authorDmitry Safonov <dima@arista.com>
Thu, 1 Nov 2018 00:24:51 +0000 (00:24 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Dec 2018 11:16:33 +0000 (12:16 +0100)
commit110b89282f658593a5a4a96a300d5aa51f1bf88f
tree07c22aa906036c8799904235865098ce21f91e24
parentc18ad0cf9cb0792f448b911eb3b268a35cc6934c
tty/ldsem: Add lockdep asserts for ldisc_sem

Make sure under CONFIG_LOCKDEP that each change to line discipline
is done with held write semaphor.
Otherwise potential reader will have a good time dereferencing
incomplete/uninitialized ldisc.

An exception here is tty_ldisc_open(), as it's called without ldisc_sem
locked by tty_init_dev() => tty_ldisc_setup() for the tty->link.

It seem valid as tty_init_dev() will call tty_driver_install_tty()
which will find ops->install(). Install will establish tty->link in
pty_common_install(), just after allocation of slave tty with
alloc_tty_struct(). So, no one should have a reference to slave pty yet.

Cc: Jiri Slaby <jslaby@suse.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Dmitry Safonov <dima@arista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_ldisc.c