hw/riscv: Don't add empty bootargs to device tree
Commit7c28f4da20
("RISC-V: Don't add NULL bootargs to device-tree") tried to avoid adding *NULL* bootargs to device tree, but unfortunately the changes were entirely useless, due to MachineState::kernel_cmdline can't be NULL at all as the default value is given as an empty string. (see hw/core/machine.c::machine_initfn()). Note the wording of *NULL* bootargs is wrong. It can't be NULL otherwise a segfault had already been observed by dereferencing the NULL pointer. It should be worded as *empty" bootargs. Fixes:7c28f4da20
("RISC-V: Don't add NULL bootargs to device-tree") Signed-off-by: Bin Meng <bin.meng@windriver.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20220421055629.1177285-2-bmeng.cn@gmail.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
6d3b9c024c
commit
58303fc0be
@ -571,7 +571,7 @@ static void microchip_icicle_kit_machine_init(MachineState *machine)
|
||||
"linux,initrd-end", end);
|
||||
}
|
||||
|
||||
if (machine->kernel_cmdline) {
|
||||
if (machine->kernel_cmdline && *machine->kernel_cmdline) {
|
||||
qemu_fdt_setprop_string(machine->fdt, "/chosen",
|
||||
"bootargs", machine->kernel_cmdline);
|
||||
}
|
||||
|
@ -511,7 +511,7 @@ static void create_fdt(SiFiveUState *s, const MemMapEntry *memmap,
|
||||
g_free(nodename);
|
||||
|
||||
update_bootargs:
|
||||
if (cmdline) {
|
||||
if (cmdline && *cmdline) {
|
||||
qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline);
|
||||
}
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ static void create_fdt(SpikeState *s, const MemMapEntry *memmap,
|
||||
qemu_fdt_add_subnode(fdt, "/chosen");
|
||||
qemu_fdt_setprop_string(fdt, "/chosen", "stdout-path", "/htif");
|
||||
|
||||
if (cmdline) {
|
||||
if (cmdline && *cmdline) {
|
||||
qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", cmdline);
|
||||
}
|
||||
}
|
||||
|
@ -1004,7 +1004,7 @@ static void create_fdt(RISCVVirtState *s, const MemMapEntry *memmap,
|
||||
create_fdt_flash(s, memmap);
|
||||
|
||||
update_bootargs:
|
||||
if (cmdline) {
|
||||
if (cmdline && *cmdline) {
|
||||
qemu_fdt_setprop_string(mc->fdt, "/chosen", "bootargs", cmdline);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user