• P
    tty: Serialize tcflow() with other tty flow control changes · c545b66c
    Peter Hurley 提交于
    Use newly-introduced tty->flow_lock to serialize updates to
    tty->flow_stopped (via tcflow()) and with concurrent tty flow
    control changes from other sources.
    
    Merge the storage for ->stopped and ->flow_stopped, now that both
    flags are serialized by ->flow_lock.
    
    The padding bits are necessary to force the compiler to allocate the
    type specified; otherwise, gcc will ignore the type specifier and
    allocate the minimum number of bytes necessary to store the bitfield.
    In turn, this would allow Alpha EV4 and EV5 cpus to corrupt adjacent
    byte storage because those cpus use RMW to store byte and short data.
    
    gcc versions < 4.7.2 will also corrupt storage adjacent to bitfields
    smaller than unsigned long on ia64, ppc64, hppa64 and sparc64, thus
    requiring more than unsigned int storage (which would otherwise be
    sufficient to workaround the Alpha non-atomic byte/short storage problem).
    Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c545b66c
tty.h 24.4 KB