| From 77eed821accf5dd962b1f13bed0680e217e49112 Mon Sep 17 00:00:00 2001 |
| From: Kamal Mostafa <kamal@canonical.com> |
| Date: Thu, 3 Feb 2011 17:38:04 -0800 |
| Subject: x86: Fix panic when handling "mem={invalid}" param |
| |
| From: Kamal Mostafa <kamal@canonical.com> |
| |
| 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> |
| 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 | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/arch/x86/kernel/e820.c |
| +++ b/arch/x86/kernel/e820.c |
| @@ -1254,6 +1254,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; |