• Maciej W. Rozycki's avatar
    [PATCH] "console=" parameter ignored · 35bafd11
    Maciej W. Rozycki authored
    I've noticed that under specific circumstances the "console=" kernel
    parameter is ignored.  This happens when EARLY_PRINTK is enabled and the
    serial console is the only available.  In this case unregister_console()
    when called for the early console sets preferred_console back to -1
    replacing the value that was recorded by console_setup() -- the order of
    calls is as follows:
    
    1. register_console() -- for the early console,
    
    2. console_setup() -- recording the console index for the real console,
    
    3. unregister_console() -- for the early console, erasing the console
       index recorded above,
    
    4. register_console() -- for the real console, picking up the first device
       available, instead of the selected one.
    
    I've observed this problem with a DECstation system using ttyS3 -- its
    default console device from the firmware's point of view.
    
    The solution is to restore the setting of "console=" upon
    unregister_console().  This made a snapshot of 2.4.26 work for me.  I
    wasn't able to test the changes with 2.6 because DECstation drivers don't
    support it yet, but the code responsible for console selection appears
    functionally the same.  So I've concluded it needs the same change.  Here's
    a patch.
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    35bafd11
printk.c 23.3 KB