[PATCH 1/3] x86 e820: Check for exactmap appearance when parsing first memmap option

H. Peter Anvin hpa at zytor.com
Wed Jan 30 11:09:11 EST 2013


Once again, what is "wrong" about this... the semantics are consistent, and breaking them when long established makes no sense.

Thomas Renninger <trenn at suse.de> wrote:

>From: Yinghai Lu <yinghai at kernel.org>
>
>memmap=exactmap will throw away all original, but also until then
>user defined (through other provided memmap= parameters) areas.
>That means all memmap= boot parameters passed before a memmap=exactmap
>parameter are not recognized.
>Without this fix:
>memmap=x at y memmap=exactmap memmap=i#k
>only i#k would get recognized.
>
>This is wrong, this fix will only throw away all original e820 areas
>once
>when memmap=exactmap is found in the whole boot command line and before
>any other memmap= option is parsed.
>
>Signed-off-by: Yinghai Lu <yinghai at kernel.org>
>Reviewed-by: Thomas Renninger <trenn at suse.de>
>---
> arch/x86/kernel/e820.c |   12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
>Index: linux-2.6/arch/x86/kernel/e820.c
>===================================================================
>--- linux-2.6.orig/arch/x86/kernel/e820.c
>+++ linux-2.6/arch/x86/kernel/e820.c
>@@ -835,6 +835,8 @@ static int __init parse_memopt(char *p)
> }
> early_param("mem", parse_memopt);
> 
>+static bool __initdata exactmap_parsed;
>+
> static int __init parse_memmap_one(char *p)
> {
> 	char *oldp;
>@@ -844,6 +846,10 @@ static int __init parse_memmap_one(char
> 		return -EINVAL;
> 
> 	if (!strncmp(p, "exactmap", 8)) {
>+		if (exactmap_parsed)
>+			return 0;
>+
>+		exactmap_parsed = true;
> #ifdef CONFIG_CRASH_DUMP
> 		/*
> 		 * If we are doing a crash dump, we still need to know
>@@ -879,6 +885,12 @@ static int __init parse_memmap_one(char
> }
> static int __init parse_memmap_opt(char *str)
> {
>+	char *p = boot_command_line;
>+
>+	p = strstr(p, "exactmap");
>+	if (p)
>+		parse_memmap_one("exactmap");
>+
> 	while (str) {
> 		char *k = strchr(str, ',');
> 

-- 
Sent from my mobile phone. Please excuse brevity and lack of formatting.



More information about the kexec mailing list