[PATCH v2] xen/arm: allow console=hvc0 to be omitted for guests

Ard Biesheuvel ard.biesheuvel at linaro.org
Mon Feb 16 01:37:09 PST 2015


On 13 February 2015 at 15:17, Julien Grall <julien.grall at linaro.org> wrote:
>
>
> On 13/02/2015 15:12, Ard Biesheuvel wrote:
>>
>> On 13 February 2015 at 15:03, Julien Grall <julien.grall at linaro.org>
>> wrote:
>>>
>>> Hi Ard,
>>>
>>>
>>> On 12/02/2015 19:29, Ard Biesheuvel wrote:
>>>>
>>>>
>>>> This patch registers hvc0 as the preferred console if no console
>>>> has been specified explicitly on the kernel command line.
>>>>
>>>> The purpose is to allow platform agnostic kernels and boot images
>>>> (such as distro installers) to boot in a Xen/ARM domU without the
>>>> need to modify the command line by hand.
>>>>
>>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
>>>> ---
>>>>    arch/arm/xen/enlighten.c | 4 ++++
>>>>    1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
>>>> index 0abeefa7dbf8..927be1d1bad7 100644
>>>> --- a/arch/arm/xen/enlighten.c
>>>> +++ b/arch/arm/xen/enlighten.c
>>>> @@ -24,6 +24,7 @@
>>>>    #include <linux/cpuidle.h>
>>>>    #include <linux/cpufreq.h>
>>>>    #include <linux/cpu.h>
>>>> +#include <linux/console.h>
>>>>
>>>>    #include <linux/mm.h>
>>>>
>>>> @@ -255,6 +256,9 @@ void __init xen_early_init(void)
>>>>                  xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
>>>>          else
>>>>                  xen_start_info->flags &=
>>>> ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
>>>> +
>>>> +       if (!console_set_on_cmdline && !xen_initial_domain())
>>>> +               add_preferred_console("hvc", 0, NULL);
>>>
>>>
>>>
>>> Unfortunately, this won't work as expected.
>>>
>>
>> Did you try it?
>
>
> No just looked at the code.
>
>>> console_set_on_cmdline is set when Linux parses the early params. The
>>> parsing is done after setup_arch (the function which call
>>> xen_early_init).
>>>
>>> So we will end up to add the HVC console even if a console has been
>>> passed
>>> on the command line.
>>>
>>
>> parse_early_param() is also called by setup_arch(), before
>> xen_early_init()
>>
>> The call to parse_early_param() in generic code is only there for
>> architectures that don't call it in their setup_arch()
>
>
> Oh, right. Sorry for the noise.
>
> So:
>
> Reviewed-by: Julien Grall <julien.grall at linaro.org>
>

Would it make sense to roll this into your xen_early_init() series as #3?



More information about the linux-arm-kernel mailing list