Skip to content
  • Dmitry Safonov's avatar
    tty/ldsem: Add lockdep asserts for ldisc_sem · 110b8928
    Dmitry Safonov authored
    
    
    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: default avatarDmitry Safonov <dima@arista.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    110b8928