Re: [PATCH v6 3/3] x86/earlyprintk: setup earlyprintk as early as possible

From: Alexander Kuleshov
Date: Tue May 12 2015 - 12:26:58 EST


2015-05-12 17:19 GMT+06:00 Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>:
>> +/* used by arch/x86/kernel/head{32,64}.c */
>> +int __init setup_early_serial_console(void);
>> +
>
> Actually, have you investigated how this works on the other supported
> architectures? It might be better to align this with them.

Yes. In other architetures, earlyprintk setup occurs through 'early_param',
as it in the x86 now.

>
> What about other cases like that described in setup_early_printk()?
>
>> +
>> + arg = strstr(boot_command_line, "earlyprintk=");
>> + /* += strlen("earlyprintk"); */
>> + arg += 12;
>> +
>> + return setup_early_printk(arg);
>> +#endif
>
> So, the logic of this function seems broken. I don't get why you have to
> check the contents of earlyprintk parameter.
>

Because for now we can setup only serial console, for other we need ioremap
which is not enabled for this moment. Here we just try to find serial console
and setup it, if another argument passed to the 'earlyprintk', it will
be parsed in the
'setup_arch'.

>>
>> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
>> index 38da21c..06fcc1b 100644
>> --- a/arch/x86/kernel/head64.c
>> +++ b/arch/x86/kernel/head64.c
>> @@ -173,6 +173,11 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
>> copy_bootdata(__va(real_mode_data));
>
>
>> setup_builtin_cmdline();
>>
>> + setup_early_serial_console();
>
> Those two can be grouped in the same way like in previous change (see
> above).
>

I'm not sure that I understand this. Can you please, explain what did
you mean here.

Thank you.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/