All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wessel <jason.wessel@windriver.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Len Brown <lenb@kernel.org>, Greg KH <gregkh@suse.de>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [origin tree boot hang] [PATCH] Revert "early_printk:Allowmorethan one early console"
Date: Wed, 23 Sep 2009 17:39:20 -0500	[thread overview]
Message-ID: <4ABAA398.7080903@windriver.com> (raw)
In-Reply-To: <20090923213929.GA20204@elte.hu>

[-- Attachment #1: Type: text/plain, Size: 1763 bytes --]

Ingo Molnar wrote:
> * Jason Wessel <jason.wessel@windriver.com> wrote:
>
>   
>> Ingo Molnar wrote:
>>     
>>> * Ingo Molnar <mingo@elte.hu> wrote:
>>>
>>>
>>>   
>>>       
>>>> The commit point to which the attached config and bootlog belongs is:
>>>>
>>>>   2.6.31-07863-gb64ada6
>>>>
>>>> Reverting:
>>>>
>>>>   c953094: early_printk: Allow more than one early console
>>>>
>>>> solves it.
>>>>     
>>>>         
>>> btw., the boot options are:
>>>
>>> Command line: root=/dev/sda6 earlyprintk=serial,ttyS0,115200 console=ttyS0,115200 debug
>>> initcall_debug apic=verbose sysrq_always_enabled ignore_loglevel 
>>> selinux=0 nmi_watchdog=0 panic=1 3
>>>
>>>   
>>>       
>> AH HA!
>>
>> earlyprintk=serial,ttyS0,115200
>>
>> You are invoking the same device twice which is why you are having 
>> infinite recursion.  It was not obvious to me why the earlyprintk code 
>> would allow "serial" or "ttyS", but perhaps we need to protect for 
>> that?
>>
>> Your boot line should be:
>>
>> earlyprintk=serial,115200
>>
>> OR
>>
>> earlyprintk=ttyS0,115200
>>     
>
> ah, indeed!
>
>   
>> The line you had there before would have been the equivalent of doing:
>>
>> earlyprintk=ttyS0,ttyS0,115200
>>
>> Given this, do we still need to execute the revert your revert?  Or 
>> perhaps do we need to add some protection?
>>     
>
> I have such lines on other boxes too. I'd suggest to add protection if 
> it's not too ugly - the typoed line worked and was pretty natural to do, 
> and the failure mode is nasty enough.
>
> 	Ingo
>   

Perhaps you will consider adding this patch to your tree?   It fixes the
specific case you mentioned.  It will still allow the board to boot and
instead of crashing, print a warning on the second instance.

Thanks,
Jason.



[-- Attachment #2: 0001-early_printk-Protect-against-using-the-same-device-t.patch --]
[-- Type: text/x-diff, Size: 1348 bytes --]

>From 2b34fcd7c99f442507fee3b79d8d5f18e873ecaf Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Wed, 23 Sep 2009 17:34:42 -0500
Subject: [PATCH 1/1] early_printk: Protect against using the same device twice

If you use the kernel argument:

earlyprintk=serial,ttyS0,115200

This will cause a recursive crash.  Instead warn the end user that they
specified the device a second time.

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
 arch/x86/kernel/early_printk.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
index 2acfd3f..712661a 100644
--- a/arch/x86/kernel/early_printk.c
+++ b/arch/x86/kernel/early_printk.c
@@ -178,11 +178,19 @@ asmlinkage void early_printk(const char *fmt, ...)
 
 static inline void early_console_register(struct console *con, int keep_early)
 {
+	struct console *bcon;
+
 	early_console = con;
 	if (keep_early)
 		early_console->flags &= ~CON_BOOT;
 	else
 		early_console->flags |= CON_BOOT;
+	for (bcon = console_drivers; bcon != NULL; con = bcon->next)
+		if (strcmp(bcon->name, con->name) == 0) {
+			printk(KERN_CRIT "ERROR: earlyprintk= %s console"
+			       " already defined\n", con->name);
+			return;
+		}
 	register_console(early_console);
 }
 
-- 
1.6.3.1.9.g95405b


  reply	other threads:[~2009-09-23 22:41 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-23 13:55 [GIT PATCH] USB patches for 2.6.31-git Greg KH
2009-09-23 17:24 ` [origin tree build failure] [PATCH] USB sierra: Fix build if !CONFIG_PM Ingo Molnar
2009-09-23 17:32   ` Randy Dunlap
2009-09-23 17:39     ` Ingo Molnar
2009-09-23 17:34   ` Greg KH
2009-09-23 17:37 ` [origin tree boot hang] [PATCH] Revert "early_printk: Allow more than one early console" Ingo Molnar
2009-09-23 17:57   ` [origin tree boot hang] [PATCH] Revert "early_printk: Allow morethan " Jason Wessel
2009-09-23 19:02     ` Ingo Molnar
2009-09-23 19:17       ` Ingo Molnar
2009-09-23 21:05         ` Ingo Molnar
2009-09-23 21:19           ` [origin tree boot hang] [PATCH] Revert "early_printk: Allowmorethan " Jason Wessel
2009-09-23 21:39             ` Ingo Molnar
2009-09-23 22:39               ` Jason Wessel [this message]
2009-09-23 22:56                 ` [origin tree boot hang] [PATCH] Revert "early_printk:Allowmorethan " Linus Torvalds
2009-09-23 23:13                   ` Jason Wessel
2009-09-24 11:48                     ` [tip:x86/urgent] x86: early_printk: Protect against using the same device twice tip-bot for Jason Wessel
2009-09-24 12:22             ` [origin tree boot hang] [PATCH] Revert "early_printk: Allowmorethan one early console" Johannes Weiner
2009-09-24 14:08               ` Jason Wessel
2009-10-01  8:34                 ` Ingo Molnar
2009-10-01  9:58                 ` [tip:x86/urgent] x86: earlyprintk: Fix regression to handle serial,ttySn as 1 arg tip-bot for Jason Wessel

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=4ABAA398.7080903@windriver.com \
    --to=jason.wessel@windriver.com \
    --cc=akpm@linux-foundation.org \
    --cc=gregkh@suse.de \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=torvalds@linux-foundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.