aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup_32.c
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-06-16 19:11:08 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 04:38:19 -0400
commitcc9f7a0ccf000d4db5fbdc7b0ae48eefea102f69 (patch)
tree582125558bf4975446ae76f35b297bf4ce864bc1 /arch/x86/kernel/setup_32.c
parent41c094fd3ca54f1a71233049cf136ff94c91f4ae (diff)
x86: kill bad_ppro
so don't punish all other cpus without that problem when init highmem Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup_32.c')
-rw-r--r--arch/x86/kernel/setup_32.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index f3ddba5ed9a7..9692aeb8ecae 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -68,6 +68,7 @@
68#include <asm/cacheflush.h> 68#include <asm/cacheflush.h>
69#include <asm/processor.h> 69#include <asm/processor.h>
70#include <asm/efi.h> 70#include <asm/efi.h>
71#include <asm/bugs.h>
71 72
72/* This value is set up by the early boot code to point to the value 73/* This value is set up by the early boot code to point to the value
73 immediately after the boot time page tables. It contains a *physical* 74 immediately after the boot time page tables. It contains a *physical*
@@ -764,6 +765,14 @@ void __init setup_arch(char **cmdline_p)
764 if (efi_enabled) 765 if (efi_enabled)
765 efi_init(); 766 efi_init();
766 767
768 if (ppro_with_ram_bug()) {
769 e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM,
770 E820_RESERVED);
771 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
772 printk(KERN_INFO "fixed physical RAM map:\n");
773 e820_print_map("bad_ppro");
774 }
775
767 e820_register_active_regions(0, 0, -1UL); 776 e820_register_active_regions(0, 0, -1UL);
768 /* 777 /*
769 * partially used pages are not usable - thus 778 * partially used pages are not usable - thus