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

Chris Smart chris at distroguy.com
Fri Oct 21 17:04:26 AEDT 2016


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);
+	}
 
 	op_display(OP_LOG, OP_MOD_INIT, 0x000B);
 
-- 
2.9.3



More information about the Skiboot mailing list