• Rob Herring's avatar
    of: fdt: Honor CONFIG_CMDLINE* even without /chosen node, take 2 · 064e32dc
    Rob Herring authored
    I do not read a strict requirement on /chosen node in either ePAPR or in
    Documentation/devicetree. Help text for CONFIG_CMDLINE and
    CONFIG_CMDLINE_EXTEND doesn't make their behavior explicitly dependent on
    the presence of /chosen or the presense of /chosen/bootargs.
    
    However the early check for /chosen and bailing out in
    early_init_dt_scan_chosen() skips CONFIG_CMDLINE handling which is not
    really related to /chosen node or the particular method of passing cmdline
    from bootloader.
    
    This leads to counterintuitive combinations (assuming
    CONFIG_CMDLINE_EXTEND=y):
    
    a) bootargs="foo", CONFIG_CMDLINE="bar" => cmdline=="foo bar"
    b) /chosen missing, CONFIG_CMDLINE="bar" => cmdline==""
    c) bootargs="", CONFIG_CMDLINE="bar" => cmdline==" bar"
    
    Rework early_init_dt_scan_chosen() so that the cmdline config options are
    always handled.
    
    [commit msg written by Alexander Sverdlin]
    
    Cc: Alexander Sverdlin <alexander.sverdlin@gmail.com>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Tested-by: default avatarGeoff Levand <geoff@infradead.org>
    Reviewed-by: default avatarAlexander Sverdlin <alexander.sverdlin@gmail.com>
    Link: https://lore.kernel.org/r/20230103-dt-cmdline-fix-v1-2-7038e88b18b6@kernel.orgSigned-off-by: default avatarRob Herring <robh@kernel.org>
    064e32dc
fdt.c 34.5 KB