|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5] xen: Allow a default compiled-in command line using Kconfig
>>> On 18.03.17 at 07:31, <blackskygg@xxxxxxxxx> wrote:
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -237,4 +237,26 @@ config FAST_SYMBOL_LOOKUP
> The only user of this is Live patching.
>
> If unsure, say Y.
> +
> +config CMDLINE
> + string "Built-in hypervisor command string"
> + default ""
> + depends on EXPERT = "y"
> + ---help---
> + Enter arguments here that should be compiled into the hypervisor
> + image and used at boot time. When the system boots, this string
> + will be parsed prior to the bootloader command line. So if a
> + non-cumulative option is set both in this string and in the
> + bootloader command line, only the latter one will take effect.
> +
> +config CMDLINE_OVERRIDE
> + bool "Built-in command line overrides bootloader arguments"
> + default n
> + depends on EXPERT = "y" && CMDLINE != ""
The CMDLINE part is sufficient here, as it can't be other than empty
when EXPERT <> "y".
> --- a/xen/common/kernel.c
> +++ b/xen/common/kernel.c
> @@ -23,6 +23,7 @@
> enum system_state system_state = SYS_STATE_early_boot;
>
> xen_commandline_t saved_cmdline;
> +const char opt_builtin_cmdline[] = CONFIG_CMDLINE;
static and __initconst.
> @@ -46,7 +47,7 @@ static void __init assign_integer_param(
> }
> }
>
> -void __init cmdline_parse(const char *cmdline)
> +static void __init do_cmdline_parse(const char *cmdline)
> {
Please omit the "do".
> @@ -56,8 +57,6 @@ void __init cmdline_parse(const char *cmdline)
> if ( cmdline == NULL )
> return;
>
> - safe_strcpy(saved_cmdline, cmdline);
> -
> for ( ; ; )
> {
> /* Skip whitespace. */
> @@ -147,6 +146,25 @@ void __init cmdline_parse(const char *cmdline)
> }
> }
>
> +/**
> + * cmdline_parse -- parses the xen command line.
> + * If CONFIG_CMDLINE is set, it would be parsed prior to @cmdline.
> + * But if CONFIG_CMDLINE_OVERRIDE is set to y, @cmdline will be ignored.
> + */
> +void __init cmdline_parse(const char *cmdline)
> +{
> + if ( strlen(opt_builtin_cmdline) )
This can be had cheaper with just checking the first byte.
> + {
> + printk("Built-in command line: %s\n", opt_builtin_cmdline);
> + do_cmdline_parse(opt_builtin_cmdline);
> + }
> +
> +#ifndef CONFIG_CMDLINE_OVERRIDE
> + safe_strcpy(saved_cmdline, cmdline);
Note how the original placement was after a NULL check.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |