[PATCH] kernel/crash_core: suppress unknown crashkernel parameter warning
Baoquan He
bhe at redhat.com
Mon Dec 6 19:34:46 PST 2021
On 12/06/21 at 12:17pm, Philipp Rudo wrote:
> When booting with crashkernel= on the kernel command line a warning
> similar to
>
> [ 0.038294] Kernel command line: ro console=ttyS0 crashkernel=256M
> [ 0.038353] Unknown kernel command line parameters "crashkernel=256M", will be passed to user space.
>
> is printed. This originates from crashkernel= being parsed independent from
> the early_param() mechanism. So the code in init/main.c doesn't know
Not only the early_param(), __setup() also takes the same mechanism.
It's just handled in different stage. You might need to call it kernel
param handling mechanism, not sure if it's accurate.
> that crashkernel= is a valid kernel parameter and prints this incorrect
> warning. Suppress the warning by adding a dummy early_param handler for
> crashkernel=.
The fix looks good to me, thanks.
Acked-by: Baoquan He <bhe at redhat.com>
By the way, on which arch did you find this issue? Ask because I am
wondering whether there's any other similiar independent kernel cmdline
handling from __setup_param(). If have, is there a chance to take a
common method to handle them, e.g a generic function or a place to
identify them. Just wild thought, I have no idea yet. Otherwise, we may
need several this kind of dummy handler for each one.
>
> Fixes: 86d1919a4fb0 ("init: print out unknown kernel parameters")
> Signed-off-by: Philipp Rudo <prudo at redhat.com>
> ---
> kernel/crash_core.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/kernel/crash_core.c b/kernel/crash_core.c
> index eb53f5ec62c9..256cf6db573c 100644
> --- a/kernel/crash_core.c
> +++ b/kernel/crash_core.c
> @@ -6,6 +6,7 @@
>
> #include <linux/buildid.h>
> #include <linux/crash_core.h>
> +#include <linux/init.h>
> #include <linux/utsname.h>
> #include <linux/vmalloc.h>
>
> @@ -295,6 +296,16 @@ int __init parse_crashkernel_low(char *cmdline,
> "crashkernel=", suffix_tbl[SUFFIX_LOW]);
> }
>
> +/*
> + * Add a dummy early_param handler to mark crashkernel= as a known command line
> + * parameter and suppress incorrect warnings in init/main.c.
> + */
> +static int __init parse_crashkernel_dummy(char *arg)
> +{
> + return 0;
> +}
> +early_param("crashkernel", parse_crashkernel_dummy);
> +
> Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type,
> void *data, size_t data_len)
> {
> --
> 2.31.1
>
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list