diff options
-rw-r--r-- | Documentation/kernel-parameters.txt | 6 | ||||
-rw-r--r-- | kernel/printk.c | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index e9261e938f6a..c357a31411cd 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -872,6 +872,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
872 | If specified, z/VM IUCV HVC accepts connections | 872 | If specified, z/VM IUCV HVC accepts connections |
873 | from listed z/VM user IDs only. | 873 | from listed z/VM user IDs only. |
874 | 874 | ||
875 | keep_bootcon [KNL] | ||
876 | Do not unregister boot console at start. This is only | ||
877 | useful for debugging when something happens in the window | ||
878 | between unregistering the boot console and initializing | ||
879 | the real console. | ||
880 | |||
875 | i2c_bus= [HW] Override the default board specific I2C bus speed | 881 | i2c_bus= [HW] Override the default board specific I2C bus speed |
876 | or register an additional I2C bus that is not | 882 | or register an additional I2C bus that is not |
877 | registered from board initialization code. | 883 | registered from board initialization code. |
diff --git a/kernel/printk.c b/kernel/printk.c index 33284adb2189..2b591f252e55 100644 --- a/kernel/printk.c +++ b/kernel/printk.c | |||
@@ -1316,6 +1316,18 @@ void console_start(struct console *console) | |||
1316 | } | 1316 | } |
1317 | EXPORT_SYMBOL(console_start); | 1317 | EXPORT_SYMBOL(console_start); |
1318 | 1318 | ||
1319 | static int __read_mostly keep_bootcon; | ||
1320 | |||
1321 | static int __init keep_bootcon_setup(char *str) | ||
1322 | { | ||
1323 | keep_bootcon = 1; | ||
1324 | printk(KERN_INFO "debug: skip boot console de-registration.\n"); | ||
1325 | |||
1326 | return 0; | ||
1327 | } | ||
1328 | |||
1329 | early_param("keep_bootcon", keep_bootcon_setup); | ||
1330 | |||
1319 | /* | 1331 | /* |
1320 | * The console driver calls this routine during kernel initialization | 1332 | * The console driver calls this routine during kernel initialization |
1321 | * to register the console printing procedure with printk() and to | 1333 | * to register the console printing procedure with printk() and to |
@@ -1463,7 +1475,9 @@ void register_console(struct console *newcon) | |||
1463 | * users know there might be something in the kernel's log buffer that | 1475 | * users know there might be something in the kernel's log buffer that |
1464 | * went to the bootconsole (that they do not see on the real console) | 1476 | * went to the bootconsole (that they do not see on the real console) |
1465 | */ | 1477 | */ |
1466 | if (bcon && ((newcon->flags & (CON_CONSDEV | CON_BOOT)) == CON_CONSDEV)) { | 1478 | if (bcon && |
1479 | ((newcon->flags & (CON_CONSDEV | CON_BOOT)) == CON_CONSDEV) && | ||
1480 | !keep_bootcon) { | ||
1467 | /* we need to iterate through twice, to make sure we print | 1481 | /* we need to iterate through twice, to make sure we print |
1468 | * everything out, before we unregister the console(s) | 1482 | * everything out, before we unregister the console(s) |
1469 | */ | 1483 | */ |