android_kernel_msm-6.1_noth.../drivers/of
Rob Herring b019db2fcf of: fdt: Honor CONFIG_CMDLINE* even without /chosen node, take 2
[ Upstream commit 064e32dc5b03114d0767893fecdaf7b5dfd8c286 ]

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: Geoff Levand <geoff@infradead.org>
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Link: https://lore.kernel.org/r/20230103-dt-cmdline-fix-v1-2-7038e88b18b6@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-24 07:24:32 +01:00
..
unittest-data of: overlay: unittest: add tests for overlay notifiers 2022-05-03 11:53:15 -05:00
address.c of: Fix "dma-ranges" handling for bus controllers 2022-09-30 14:35:43 -05:00
base.c Devicetree updates for v6.1: 2022-10-10 13:13:51 -07:00
device.c of: Fix "dma-ranges" handling for bus controllers 2022-09-30 14:35:43 -05:00
dynamic.c of: Add missing 'Return' section in kerneldoc comments 2021-03-27 12:59:03 -06:00
fdt.c of: fdt: Honor CONFIG_CMDLINE* even without /chosen node, take 2 2023-01-24 07:24:32 +01:00
fdt_address.c
irq.c of: irq: Report individual failures in of_irq_init() 2022-09-07 10:54:55 -05:00
Kconfig of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
kexec.c of/kexec: Fix reading 32-bit "linux,initrd-{start,end}" values 2023-01-07 11:11:46 +01:00
kobj.c of: kobj: make of_node_is_(initialized|attached) parameters const 2021-10-20 13:37:25 -05:00
Makefile of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
of_numa.c of, numa: Fetch empty NUMA node ID from distance map 2021-10-04 13:13:44 -05:00
of_private.h of: Fix "dma-ranges" handling for bus controllers 2022-09-30 14:35:43 -05:00
of_reserved_mem.c of: reserved-memory: Print allocation/reservation failures as error 2022-06-28 14:15:36 -06:00
overlay.c of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() and find_dup_cset_prop() 2022-12-31 13:32:26 +01:00
pdt.c of: Remove struct device_node.type pointer 2019-01-10 16:24:44 -06:00
platform.c drm for 5.19-rc1 2022-05-25 16:18:27 -07:00
property.c of: property: decrement node refcount in of_fwnode_get_reference_args() 2022-11-22 17:22:52 -06:00
resolver.c of: overlay: log the error cause on resolver failure 2020-03-02 11:32:44 -06:00
unittest.c Devicetree updates for v6.1: 2022-10-10 13:13:51 -07:00