From: Ingo Molnar <mingo@elte.hu>
To: Jason Wessel <jason.wessel@windriver.com>
Cc: greg@kroah.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/5] usb,early_printk: unregister early usb before rest_init()
Date: Thu, 7 May 2009 17:09:39 +0200 [thread overview]
Message-ID: <20090507150939.GD2344@elte.hu> (raw)
In-Reply-To: <4A018A69.5030800@windriver.com>
* Jason Wessel <jason.wessel@windriver.com> wrote:
> Ingo Molnar wrote:
> > * Jason Wessel <jason.wessel@windriver.com> 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.
> [clip]
> >> +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.
yeah, it should definitely be unregistered in the 'blackout' period.
>
> 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.
My main point is to please use clean init sequences, instead of
relying on the current (pretty random) semantics of postcore_init().
It is a property of the USB code that it has trouble with the early
console - so an explicit call to unregister_usb_early_consoles()
call would solve it.
Probably followed by a reregister_usb_early_consoles() call - your
patch AFAICS breaks earlyprint=dbg,...,keep functionality, right?
Ingo
next prev parent reply other threads:[~2009-05-07 15:09 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-06 2:00 [PATCH 0/5] usb_debug driver improvements Jason Wessel
2009-05-06 2:00 ` [PATCH 1/5] usb_debug: implement multi urb write Jason Wessel
2009-05-06 2:00 ` [PATCH 2/5] usb_debug,usb_generic_serial: implement sysrq and serial break Jason Wessel
2009-05-06 2:00 ` [PATCH 3/5] usb,early_printk: insert cr prior to nl as needed Jason Wessel
2009-05-06 2:00 ` [PATCH 4/5] usb,early_printk: unregister early usb before rest_init() Jason Wessel
2009-05-06 2:00 ` [PATCH 5/5] usb_debug: EXPERIMENTAL - poll hcd device to force writes Jason Wessel
2009-05-06 15:18 ` Alan Stern
2009-05-06 15:25 ` Greg KH
2009-05-06 15:42 ` Alan Cox
2009-05-06 15:59 ` Jason Wessel
2009-05-06 15:41 ` Alan Cox
2009-05-06 15:45 ` Greg KH
2009-05-06 17:17 ` Oliver Neukum
2009-05-06 19:24 ` Alan Stern
2009-05-06 20:01 ` Oliver Neukum
2009-05-06 20:24 ` Alan Stern
2009-05-06 22:24 ` Oliver Neukum
2009-05-07 14:35 ` Alan Stern
2009-05-07 15:01 ` Oliver Neukum
2009-05-07 16:32 ` Alan Stern
2009-05-06 20:24 ` Jason Wessel
2009-05-06 20:28 ` Greg KH
2009-05-06 20:51 ` [PATCH 5/5] usb_debug: EXPERIMENTAL - poll hcd device to forcewrites Jason Wessel
2009-05-06 21:32 ` Greg KH
2009-05-07 14:00 ` Alan Stern
2009-05-07 0:06 ` [PATCH 5/5] usb_debug: EXPERIMENTAL - poll hcd device to force writes Alan Cox
2009-05-07 14:27 ` Alan Stern
2009-05-07 14:49 ` Oliver Neukum
2009-05-06 7:34 ` [PATCH 4/5] usb,early_printk: unregister early usb before rest_init() Ingo Molnar
2009-05-06 13:02 ` Jason Wessel
2009-05-07 15:09 ` Ingo Molnar [this message]
2009-05-06 7:30 ` [PATCH 3/5] usb,early_printk: insert cr prior to nl as needed Ingo Molnar
2009-05-06 15:25 ` Greg KH
2009-05-07 15:04 ` Ingo Molnar
2009-05-06 7:16 ` [PATCH 1/5] usb_debug: implement multi urb write Oliver Neukum
2009-05-06 11:57 ` Jason Wessel
2009-05-06 12:31 ` Oliver Neukum
2009-05-06 15:26 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090507150939.GD2344@elte.hu \
--to=mingo@elte.hu \
--cc=greg@kroah.com \
--cc=jason.wessel@windriver.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox