• Andreas Bießmann's avatar
    register_console: prevent adding the same console twice · 16cf48a6
    Andreas Bießmann authored
    This patch guards the console_drivers list to be corrupted. The
    for_each_console() macro insist on a strictly forward list ended by NULL:
    
     con0->next->con1->next->NULL
    
    Without this patch it may happen easily to destroy this list for example by
    adding 'earlyprintk' twice, especially on embedded devices where the early
    console is often a single static instance.  This will result in the following
    list:
    
     con0->next->con0
    
    This in turn will result in an endless loop in console_unlock() later on by
    printing the first __log_buf line endlessly.
    Signed-off-by: default avatarAndreas Bießmann <andreas@biessmann.de>
    Cc: Kay Sievers <kay@vrfy.org>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    16cf48a6
printk.c 72.1 KB