• Jiri Slaby's avatar
    TTY: fix UV serial console regression · 1fe9bb44
    Jiri Slaby authored
    commit 0eee50af upstream.
    
    Commit 74c21077 (serial: Use block_til_ready helper) and its fixup
    3f582b8c (serial: fix termios settings in open) introduced a
    regression on UV systems. The serial eventually freezes while being
    used. It's completely unpredictable and sometimes needs a heap of
    traffic to happen first.
    
    To reproduce this, yast installation was used as it turned out to be
    pretty reliable in reproducing. Especially during installation process
    where one doesn't have an SSH daemon running. And no monitor as the HW
    is completely headless. So this was fun to find. Given the machine
    doesn't boot on vanilla before 2.6.36 final. (And the commits above
    are older.)
    
    Unless there is some bad race in the code, the hardware seems to be
    pretty broken. Otherwise pure MSR read should not cause such a bug,
    or?
    
    So to prevent the bug, revert to the old behavior. I.e. read modem
    status only if we really have to -- for non-CLOCAL set serials.
    Non-CLOCAL works on this hardware OK, I tried. See? I don't.
    
    And document that shit.
    Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
    References: https://lkml.org/lkml/2011/12/6/573
    References: https://bugzilla.novell.com/show_bug.cgi?id=718518Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1fe9bb44
tty_port.c 11.4 KB