[PATCH 2/5] console: console handover to preferred console
Signed-off-by: Yinghai Lu <[email protected]>
diff --git a/kernel/printk.c b/kernel/printk.c
index 0bbdeac..7b96cae 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -985,12 +1007,15 @@ void register_console(struct console *console)
if (!(console->flags & CON_ENABLED))
return;
- if (bootconsole) {
+ if (bootconsole && (console->flags & CON_CONSDEV)) {
printk(KERN_INFO "console handover: boot [%s%d] -> real [%s%d]\n",
bootconsole->name, bootconsole->index,
console->name, console->index);
unregister_console(bootconsole);
console->flags &= ~CON_PRINTBUFFER;
+ } else {
+ printk(KERN_INFO "console [%s%d] enabled\n",
+ console->name, console->index);
}
/*
On Thu, 31 May 2007 13:58:26 -0700
Yinghai Lu <[email protected]> wrote:
> [PATCH 2/5] console: console handover to preferred console
>
> Signed-off-by: Yinghai Lu <[email protected]>
>
> diff --git a/kernel/printk.c b/kernel/printk.c
> index 0bbdeac..7b96cae 100644
> --- a/kernel/printk.c
> +++ b/kernel/printk.c
> @@ -985,12 +1007,15 @@ void register_console(struct console *console)
> if (!(console->flags & CON_ENABLED))
> return;
>
> - if (bootconsole) {
> + if (bootconsole && (console->flags & CON_CONSDEV)) {
> printk(KERN_INFO "console handover: boot [%s%d] -> real [%s%d]\n",
> bootconsole->name, bootconsole->index,
> console->name, console->index);
> unregister_console(bootconsole);
> console->flags &= ~CON_PRINTBUFFER;
> + } else {
> + printk(KERN_INFO "console [%s%d] enabled\n",
> + console->name, console->index);
> }
>
> /*
What does this change do, and what is the reason for it??
Andrew Morton wrote:
> On Thu, 31 May 2007 13:58:26 -0700
> Yinghai Lu <[email protected]> wrote:
>
>> [PATCH 2/5] console: console handover to preferred console
>>
>> Signed-off-by: Yinghai Lu <[email protected]>
>>
>> diff --git a/kernel/printk.c b/kernel/printk.c
>> index 0bbdeac..7b96cae 100644
>> --- a/kernel/printk.c
>> +++ b/kernel/printk.c
>> @@ -985,12 +1007,15 @@ void register_console(struct console *console)
>> if (!(console->flags & CON_ENABLED))
>> return;
>>
>> - if (bootconsole) {
>> + if (bootconsole && (console->flags & CON_CONSDEV)) {
>> printk(KERN_INFO "console handover: boot [%s%d] -> real [%s%d]\n",
>> bootconsole->name, bootconsole->index,
>> console->name, console->index);
>> unregister_console(bootconsole);
>> console->flags &= ~CON_PRINTBUFFER;
>> + } else {
>> + printk(KERN_INFO "console [%s%d] enabled\n",
>> + console->name, console->index);
>> }
>>
>> /*
>
> What does this change do, and what is the reason for it??
for earlyprintk=ttyS0,9600 console=tty0 console=ttyS0,9600n8
the handover will happen from earlyser0 to tty0. but what we want is to ttyS0.
later with patch4,
console=tty0 console=uart8250,io,0x3f8,9600n8
will handover to ttyS0 instead of tty0.
Maybe can put above lines into commit log.
YH