mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
47b0bf14c0
commit
e44d986084
2 files changed
+17
-3
No files matched your search
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||