Files
openwrt/target/linux/generic/pending-6.18/920-mangle_bootargs.patch
T
John Audia 4c942c06b8 kernel: bump 6.18 to 6.18.27
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.18.27

Manually rebased:
  pending-6.18/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch

All other patches automatically rebased via update_kernel.sh

Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/23252
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-09 11:02:51 +02:00

72 lines
1.9 KiB
Diff

From: Imre Kaloz <kaloz@openwrt.org>
Subject: init: add CONFIG_MANGLE_BOOTARGS and disable it by default
Enabling this option renames the bootloader supplied root=
and rootfstype= variables, which might have to be know but
would break the automatisms OpenWrt uses.
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
---
init/Kconfig | 9 +++++++++
init/main.c | 24 ++++++++++++++++++++++++
2 files changed, 33 insertions(+)
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -2012,6 +2012,15 @@ config ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPIN
For complete descriptions of memory sealing, please see
Documentation/userspace-api/mseal.rst
+config MANGLE_BOOTARGS
+ bool "Rename offending bootargs"
+ depends on EXPERT
+ help
+ Sometimes the bootloader passed bogus root= and rootfstype=
+ parameters to the kernel, and while you want to ignore them,
+ you need to know the values f.e. to support dual firmware
+ layouts on the flash.
+
config HAVE_PERF_EVENTS
bool
help
--- a/init/main.c
+++ b/init/main.c
@@ -635,6 +635,29 @@ static inline void setup_nr_cpu_ids(void
static inline void smp_prepare_cpus(unsigned int maxcpus) { }
#endif
+#ifdef CONFIG_MANGLE_BOOTARGS
+static void __init mangle_bootargs(char *command_line)
+{
+ char *rootdev;
+ char *rootfs;
+
+ rootdev = strstr(command_line, "root=/dev/mtdblock");
+
+ if (rootdev)
+ strncpy(rootdev, "mangled_rootblock=", 18);
+
+ rootfs = strstr(command_line, "rootfstype");
+
+ if (rootfs)
+ strncpy(rootfs, "mangled_fs", 10);
+
+}
+#else
+static void __init mangle_bootargs(char *command_line)
+{
+}
+#endif
+
/*
* We need to store the untouched command line for future reference.
* We also need to store the touched command line since the parameter
@@ -933,6 +956,7 @@ void start_kernel(void)
jump_label_init();
static_call_init();
early_security_init();
+ mangle_bootargs(command_line);
setup_boot_config();
setup_command_line(command_line);
setup_nr_cpu_ids();