[PATCH] Don't register udbg_console without udbg_putc

Milton Miller miltonm at bga.com
Sun Jun 10 14:32:43 EST 2007


Previously, registering this early console would just result
in dropping early buffered printk output until a udbg_putc
was registered.

However, commit 69331af79cf29e26d1231152a172a1a10c2df511
clears the CON_PRINTBUFFER flag on the main console when a
CON_BOOT (early) console has been registered, resulting in
the buffered messages never being displayed to the user.

Signed-off-by: Milton Miller <miltonm at bga.com>

--- 
Mark and Dale can you test this please?

The call in the common code is made after ->early_init and
before ->setup_arch on both 32 and 64 bit.  If a platform
were to set udbg_putc from the setup_arch hook previosly it
would display output from the point of setting that hook.
After this patch it will not get any output until the main
console registers unless it calls register_early_udbg_console.
I didn't see any platforms that do this in my 5 minute check.

diff --git a/arch/powerpc/kernel/udbg.c b/arch/powerpc/kernel/udbg.c
index 87703df..993eedc 100644
--- a/arch/powerpc/kernel/udbg.c
+++ b/arch/powerpc/kernel/udbg.c
@@ -151,12 +151,18 @@ static struct console udbg_console = {
 
 static int early_console_initialized;
 
-/* called by setup_system */
+/*
+ * Called by setup_system after ppc_md->probe and ppc_md->early_init.
+ * Call it again after setting udbg_putc in ppc_md->setup_arch.
+ */
 void register_early_udbg_console(void)
 {
 	if (early_console_initialized)
 		return;
 
+	if (!udbg_putc)
+		return;
+
 	if (strstr(boot_command_line, "udbg-immortal")) {
 		printk(KERN_INFO "early console immortal !\n");
 		udbg_console.flags &= ~CON_BOOT;



More information about the Linuxppc-dev mailing list