[Skiboot] [PATCH] core/init.c: Fix bootargs parsing

Balbir Singh bsingharora at gmail.com
Mon Oct 24 10:54:51 AEDT 2016



On 21/10/16 17:04, Chris Smart wrote:
> Currently the bootargs are unconditionally deleted, which causes
> a bug where the bootargs passed in by the device tree are lost.
> 
> This patch deletes bootargs only if it needs to be replaced by the NVRAM
> entry.
> 
> This patch also removes KERNEL_COMMAND_LINE config option in favour of
> using the NVRAM or a device tree.
> 
> Signed-off-by: Chris Smart <chris at distroguy.com>
> ---
> core/init.c | 12 ++++--------
> 1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/core/init.c b/core/init.c
> index 43ce3a06fb65..7d75fd28d04c 100644
> --- a/core/init.c
> +++ b/core/init.c
> @@ -502,16 +502,12 @@ void __noreturn load_and_boot_kernel(bool is_reboot)
>      */
>     occ_pstates_init();
> 
> -    /* Set kernel command line argument if specified */
> -    dt_check_del_prop(dt_chosen, "bootargs");
> +    /* Use nvram bootargs over device tree */
>     cmdline = nvram_query("bootargs");
> -#ifdef KERNEL_COMMAND_LINE
> -    if (!cmdline)
> -        cmdline = KERNEL_COMMAND_LINE;
> -#endif
> -    /* some platforms always pass bootargs through the fdt */
> -    if (cmdline && !dt_find_property(dt_chosen, "bootargs"))
> +    if (cmdline) {
> +        dt_check_del_prop(dt_chosen, "bootargs");
>         dt_add_property_string(dt_chosen, "bootargs", cmdline);

The indentation needs to be checked. It also changes the logic of
the code.  I am not sure if overriding from nvram is desriable even
if bootargs is explictly specified. if that is desirable, how about
a debug statement stating that we are overriding bootargs with whats
in nvram.

Balbir


More information about the Skiboot mailing list