On Mon, Dec 12, 2022, at 00:58, Alexander Sverdlin wrote: > 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" > > Move CONFIG_CMDLINE handling outside of early_init_dt_scan_chosen() so that > cases b and c above result in the same cmdline. > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> Thanks for debugging this and coming up with a fix. We probably want to have an empty /chosen node in most dts files to stay compatible with existing kernels, but fixing the kernel is a good idea regardless. Acked-by: Arnd Bergmann <arnd@xxxxxxxx> and probably Cc: stable@xxxxxxxxxxxxxxx