[lkml]   [2009]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 4/5] usb,early_printk: unregister early usb before rest_init()
Ingo Molnar wrote:
> * Jason Wessel <> wrote:
>> The early_printk EHCI debug driver can hang the system or cause
>> unpredictable results because two separate APIs will attempt to write
>> to the mapped PCI region.
>> +postcore_initcall(usb_early_debug_cleanup);
> We already have CON_BOOT which allows the unregistering of early
> consoles, via disable_boot_consoles() initcall in kernel/printk.c.
> The hang should be solved differently: either by calling
> disable_boot_consoles() explicitly after console_init() - or by
> introducing another CON_ flag that marks the console for early
> forced unregistering.

I thought about adding another flag in console_init() such that an
early console which cannot safely be used can elect to unregister.
There are two problems with this.

1) We actually need a call back to unset ehci_debug, or the
console_unregister needs to set/clear a flag which then must be
checked on each early_printk write, else any further call laying
around for early_printk can crash the system.

2) Ideally you want to keep printk alive for as long as possible,
which means you can have it all the way through start_kernel()
before the "blackout period" while waiting for pci and usb init.

Given these two issues, is it your preference still to see a patch
that changes console_init or add another call back to start_kernel() ?

An earlier iteration of this patch added a call back in start_kernel
just before rest_init(), but it seemed like it was not needed since we
can hook on to part of the relevent function init chain.

I am open to fixing this in what ever manner is acceptable.


 \ /
  Last update: 2009-05-06 15:05    [W:0.078 / U:9.752 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site