arch/x86/boot/compressed/head_64.S clears BSS after relocated. If early serial is set up before clearing BSS, the early_serial_base will be reset to 0.
Initializing early_serial_base as -1 to push it to .data section. Signed-off-by: Pingfan Liu <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: Jordan Borgner <[email protected]> Cc: [email protected] --- arch/x86/boot/compressed/early_serial_console.c | 2 +- arch/x86/boot/early_serial_console.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/boot/compressed/early_serial_console.c b/arch/x86/boot/compressed/early_serial_console.c index 261e81f..624e334 100644 --- a/arch/x86/boot/compressed/early_serial_console.c +++ b/arch/x86/boot/compressed/early_serial_console.c @@ -1,5 +1,5 @@ #include "misc.h" -int early_serial_base; +int early_serial_base = -1; #include "../early_serial_console.c" diff --git a/arch/x86/boot/early_serial_console.c b/arch/x86/boot/early_serial_console.c index 023bf1c..d8de15a 100644 --- a/arch/x86/boot/early_serial_console.c +++ b/arch/x86/boot/early_serial_console.c @@ -149,6 +149,6 @@ void console_init(void) { parse_earlyprintk(); - if (!early_serial_base) + if (early_serial_base <= 0) parse_console_uart8250(); } -- 2.7.4

