| 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); |
| _ |