blob: 76f0cddc783fcbc42d38b88b3daa0af4badf342f [file] [log] [blame]
From: "Paul E. McKenney" <paulmck@kernel.org>
Subject: fs/proc: add boot loader arguments as comment to /proc/bootconfig
Date: Thu, 5 Oct 2023 10:17:46 -0700
In kernels built with CONFIG_BOOT_CONFIG_FORCE=y, /proc/cmdline will show
all kernel boot parameters, both those supplied by the boot loader and
those embedded in the kernel image. This works well for those who just
want to see all of the kernel boot parameters, but is not helpful to those
who need to see only those parameters supplied by the boot loader. This
is especially important when these parameters are presented to the boot
loader by automation that might gather them from diverse sources. It is
also useful when booting the next kernel via kexec(), in which case it is
necessary to supply only those kernel command-line arguments from the boot
loader, and most definitely not those that were embedded into the current
kernel.
Therefore, add comments to /proc/bootconfig of the form:
# Parameters from bootloader:
# root=UUID=ac0f0548-a69d-43ca-a06b-7db01bcbd5ad ro quiet ...
The second added line shows only those kernel boot parameters supplied
by the boot loader.
Link: https://lore.kernel.org/all/CAHk-=wjpVAW3iRq_bfKnVfs0ZtASh_aT67bQBG11b4W6niYVUw@mail.gmail.com/
Link: https://lore.kernel.org/all/20230731233130.424913-1-paulmck@kernel.org/
Link: https://lkml.kernel.org/r/20231005171747.541123-2-paulmck@kernel.org
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Co-developed-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Arnd Bergmann <arnd@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
fs/proc/bootconfig.c | 6 ++++++
1 file changed, 6 insertions(+)
--- a/fs/proc/bootconfig.c~fs-proc-add-boot-loader-arguments-as-comment-to-proc-bootconfig
+++ a/fs/proc/bootconfig.c
@@ -62,6 +62,12 @@ static int __init copy_xbc_key_value_lis
break;
dst += ret;
}
+ if (ret >= 0 && boot_command_line[0]) {
+ ret = snprintf(dst, rest(dst, end), "# Parameters from bootloader:\n# %s\n",
+ boot_command_line);
+ if (ret > 0)
+ dst += ret;
+ }
}
out:
kfree(key);
_