• P
    n_tty: Make N_TTY ldisc receive path lockless · 6d76bd26
    Peter Hurley 提交于
    n_tty has a single-producer/single-consumer input model;
    use lockless publish instead.
    
    Use termios_rwsem to exclude both consumer and producer while
    changing or resetting buffer indices, eg., when flushing. Also,
    claim exclusive termios_rwsem to safely retrieve the buffer
    indices from a thread other than consumer or producer
    (eg., TIOCINQ ioctl).
    
    Note the read_tail is published _after_ clearing the newline
    indicator in read_flags to avoid racing the producer.
    
    Drop read_lock spinlock.
    Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    6d76bd26
n_tty.c 57.4 KB