|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] arch/x86/setup.c: 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>
diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c
index c9b6af8..4b15e06 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 c2fd075..b77f7f2 100644
--- a/xen/include/xen/param.h
+++ b/xen/include/xen/param.h
@@ -35,6 +35,10 @@ extern const struct kernel_param __setup_start[],
__setup_end[];
__attribute__((__aligned__(1))) char
#define __kparam __param(__initsetup)
+#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 +75,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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |