x86/setup: Ignore early boot parameters like no-real-mode

There are parameters in xen/arch/x86/boot/cmdline.c that
are only used early in the boot process, so handlers are
necessary to avoid an "Unknown command line option" in
dmesg.

This also updates ignore_param() to generate a temporary
variable name so that the macro can be used more than once
per file.

Signed-off-by: Trammell hudson <hudson@trmm.net>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
[Leave note to stop TEMP_NAME() finding more general use]
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Trammell Hudson authored and Andrew Cooper committed 2020-08-13 12:42:24 +01:00
1 parent 47b0bf14c0
commit e44d986084
2 files changed
+17 -3

No files matched your search

+9
View File
@@ -679,6 +679,15 @@ static void __init noreturn reinit_bsp_stack(void)
reset_stack_and_jump_nolp(init_done);
}
/*
* x86 early command line parsing in xen/arch/x86/boot/cmdline.c
* has options that are only used during the very initial boot process,
* so they can be ignored now.
*/
ignore_param("no-real-mode");
ignore_param("edd");
ignore_param("edid");
/*
* Some scripts add "placeholder" to work around a grub error where it ate the
* first parameter.
+8 -3
View File
@@ -35,6 +35,11 @@ extern const struct kernel_param __setup_start[], __setup_end[];
__attribute__((__aligned__(1))) char
#define __kparam __param(__initsetup)
/* Only for use with .init data, to avoid creating livepatch problems. */
#define __TEMP_NAME(base, line) base ## _ ## line
#define _TEMP_NAME(base, line) __TEMP_NAME(base, line)
#define TEMP_NAME(base) _TEMP_NAME(base, __LINE__)
#define custom_param(_name, _var) \
__setup_str __setup_str_##_var[] = _name; \
__kparam __setup_##_var = \
@@ -71,9 +76,9 @@ extern const struct kernel_param __setup_start[], __setup_end[];
.len = sizeof(_var), \
.par.var = &_var }
#define ignore_param(_name) \
__setup_str setup_str_ign[] = _name; \
__kparam setup_ign = \
{ .name = setup_str_ign, \
__setup_str TEMP_NAME(__setup_str_ign)[] = _name; \
__kparam TEMP_NAME(__setup_ign) = \
{ .name = TEMP_NAME(__setup_str_ign), \
.type = OPT_IGNORE }
#ifdef CONFIG_HYPFS
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.