• J
    USB: console: Fix regression in usb console on kernel boot · 6e406121
    Jason Wessel 提交于
    The commit 335f8514 introduced a
    regression which stopped usb consoles from working correctly as a
    kernel boot console as well as interactive login device.
    
    The addition of the serial_close() which in turn calls
    tty_port_close_start() will change the reference count of port.count
    and warn about it.  The usb console code had previously incremented
    the port.count to indicate it was making use of the device as a
    console and the forced change causes a double open on the usb device
    which leads to a non obvious kernel oops later on when the tty is
    freed.
    
    To fix the problem instead make use of port->console to track if the
    port is in fact an active console port to avoid double initialization
    of the usb serial device.  The port.count is incremented and
    decremented only with in the scope of usb_console_setup() for the
    purpose of the low level driver initialization.
    Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
    Acked-by: NAlan Cox <alan@linux.intel.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
    6e406121
usb-serial.c 37.1 KB