]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86: Fix panic when handling "mem={invalid}" param
authorKamal Mostafa <kamal@canonical.com>
Fri, 4 Feb 2011 01:38:04 +0000 (17:38 -0800)
committerAK <andi@firstfloor.org>
Thu, 31 Mar 2011 18:58:36 +0000 (11:58 -0700)
commit 77eed821accf5dd962b1f13bed0680e217e49112 upstream.

Avoid removing all of memory and panicing when "mem={invalid}"
is specified, e.g. mem=blahblah, mem=0, or mem=nopentium (on
platforms other than x86_32).

Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
BugLink: http://bugs.launchpad.net/bugs/553464
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Len Brown <len.brown@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
LKML-Reference: <1296783486-23033-1-git-send-email-kamal@canonical.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/e820.c

index 0d6fc71bedb152802401b49eb801696cb5ee460d..305e3aa3f9f57c12851f917e157e072b3065c450 100644 (file)
@@ -989,6 +989,9 @@ static int __init parse_memopt(char *p)
 
        userdef = 1;
        mem_size = memparse(p, &p);
+       /* don't remove all of memory when handling "mem={invalid}" param */
+       if (mem_size == 0)
+               return -EINVAL;
        e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1);
 
        return 0;