diff options
Diffstat (limited to 'arch/x86/kernel/e820.c')
-rw-r--r-- | arch/x86/kernel/e820.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 294f26da0c0c..0b5e2b546566 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -847,15 +847,21 @@ static int __init parse_memopt(char *p) | |||
847 | if (!p) | 847 | if (!p) |
848 | return -EINVAL; | 848 | return -EINVAL; |
849 | 849 | ||
850 | #ifdef CONFIG_X86_32 | ||
851 | if (!strcmp(p, "nopentium")) { | 850 | if (!strcmp(p, "nopentium")) { |
851 | #ifdef CONFIG_X86_32 | ||
852 | setup_clear_cpu_cap(X86_FEATURE_PSE); | 852 | setup_clear_cpu_cap(X86_FEATURE_PSE); |
853 | return 0; | 853 | return 0; |
854 | } | 854 | #else |
855 | printk(KERN_WARNING "mem=nopentium ignored! (only supported on x86_32)\n"); | ||
856 | return -EINVAL; | ||
855 | #endif | 857 | #endif |
858 | } | ||
856 | 859 | ||
857 | userdef = 1; | 860 | userdef = 1; |
858 | mem_size = memparse(p, &p); | 861 | mem_size = memparse(p, &p); |
862 | /* don't remove all of memory when handling "mem={invalid}" param */ | ||
863 | if (mem_size == 0) | ||
864 | return -EINVAL; | ||
859 | e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1); | 865 | e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1); |
860 | 866 | ||
861 | return 0; | 867 | return 0; |