• P
    tty: Convert tty_struct bitfield to ints · d7a855bd
    Peter Hurley 提交于
    The stopped, hw_stopped, flow_stopped and packet bits are smp-unsafe
    and interrupt-unsafe. For example,
    
    CPU 0                         | CPU 1
                                  |
    tty->flow_stopped = 1         | tty->hw_stopped = 0
    
    One of these updates will be corrupted, as the bitwise operation
    on the bitfield is non-atomic.
    
    Ensure each flag has a separate memory location, so concurrent
    updates do not corrupt orthogonal states. Because DEC Alpha EV4 and EV5
    cpus (from 1995) perform RMW on smaller-than-machine-word storage,
    "separate memory location" must be int instead of byte.
    Signed-off-by: NPeter Hurley <peter@hurleysoftware.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d7a855bd
tty.h 24.2 KB