Does anything actually break without this patch? My reading of unregister_console says we will acquire the console semaphore, walk the list, fail to find the console, relase the semaphore, and return.
Hmm... unless there is a problem with the console preference code? I don't see anything that should deref a bad pointer, maybe it breaks the preference? From get web: if (console_drivers == NULL) preferred_console = selected_console; else if (console->flags & CON_CONSDEV) console_drivers->flags |= CON_CONSDEV; On Sep 7, 2005, at 4:52 AM, Stephen Rothwell wrote:
The earlier commit 8d9273918635f0301368c01b56c03a6f339e8d51 (Consolidate early console and PPCDBG code) broke iSeries because it caused unregister_console(&udbg_console) to be called unconditionally. iSeries never registers the udbg_console. This just reverts part of the change. Signed-off-by: Stephen Rothwell <[EMAIL PROTECTED]> --- arch/ppc64/kernel/udbg.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) -- Cheers, Stephen Rothwell [EMAIL PROTECTED] http://www.canb.auug.org.au/~sfr/ 234f5032f6ccb4d72e4b74d33af55716b67d8a27 diff --git a/arch/ppc64/kernel/udbg.c b/arch/ppc64/kernel/udbg.c --- a/arch/ppc64/kernel/udbg.c +++ b/arch/ppc64/kernel/udbg.c @@ -158,14 +158,20 @@ static struct console udbg_console = { .index = -1, }; +static int early_console_initialized; + void __init disable_early_printk(void) { + if (!early_console_initialized) + return; unregister_console(&udbg_console); + early_console_initialized = 0; } /* called by setup_system */ void register_early_udbg_console(void) { + early_console_initialized = 1; register_console(&udbg_console); }
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/