[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/setup: Ignore early boot parameters like no-real-mode
commit e44d986084760929e32bd4f5456677d370206d7f Author: Trammell Hudson <hudson@xxxxxxxx> AuthorDate: Wed Aug 12 17:42:48 2020 +0000 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Thu Aug 13 12:42:24 2020 +0100 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@xxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> [Leave note to stop TEMP_NAME() finding more general use] Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/setup.c | 9 +++++++++ xen/include/xen/param.h | 11 ++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index c9b6af826d..4b15e067fa 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -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. diff --git a/xen/include/xen/param.h b/xen/include/xen/param.h index c2fd075dd0..f4be944248 100644 --- a/xen/include/xen/param.h +++ b/xen/include/xen/param.h @@ -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 -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |