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

H. Peter Anvin
2013-01-30T16:09:21Z

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

Thomas Renninger <trenn@suse.de> wrote:

>From: Yinghai Lu <yinghai@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@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@kernel.org>
>Reviewed-by: Thomas Renninger <trenn@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.