• Johan Hovold's avatar
    tty: reset termios state on device registration · 93857edd
    Johan Hovold authored
    Free any saved termios data when registering a tty device so that the
    termios state is reset when reusing a minor number.
    
    This is useful for hot-pluggable buses such as USB where it does not
    make much sense to reuse saved termios data from an unrelated device
    when a new device is later plugged in.
    
    This specifically avoids a situation where the new device does not have
    the carrier-detect signal wired, but the saved termios state has CLOCAL
    cleared, effectively preventing the port from being opened in blocking
    mode as noted by Jan Kundrát <jan.kundrat@cesnet.cz>.
    
    Note that clearing the saved data at deregistration would not work as
    the device could still be open.
    
    Also note that the termios data is not reset for drivers with
    TTY_DRIVER_DYNAMIC_ALLOC set (e.g. legacy pty) as their character device
    is registered at driver registration and could theoretically already
    have been opened (and pty termios state is never saved anyway).
    Reported-by: default avatarJan Kundrát <jan.kundrat@cesnet.cz>
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    93857edd
tty_io.c 90.4 KB