Re: [origin tree boot hang] [PATCH] Revert "early_printk:Allowmorethanone early console"

From: Jason Wessel
Date: Wed Sep 23 2009 - 18:41:40 EST


This is a multi-part message in MIME format.Ingo Molnar wrote:
> * Jason Wessel <jason.wessel@xxxxxxxxxxxxx> wrote:
>
>
>> Ingo Molnar wrote:
>>
>>> * Ingo Molnar <mingo@xxxxxxx> 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.