diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-01 16:17:38 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-03 07:26:27 -0400 |
commit | 2944e16b25e7fb8b5ee0dd9dc7197a0f9e523cfd (patch) | |
tree | 0114128fdb9d2f54188a1684758e0217eadae1e5 /arch/x86/kernel/setup_64.c | |
parent | e8c27ac9191ab9e6506ae5cbe70d87ac50f8e960 (diff) |
x86: update mptable
make mptable to be consistent with acpi routing, so we could:
1. kexec kernel with acpi=off
2. work around BIOSes where acpi routing is working, but mptable is
not right, so can use kernel/kexec to start other OSes that don't have
good acpi support.
command line: update_mptable
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup_64.c')
-rw-r--r-- | arch/x86/kernel/setup_64.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c index 89e6cca5d693..978a0d637f3f 100644 --- a/arch/x86/kernel/setup_64.c +++ b/arch/x86/kernel/setup_64.c | |||
@@ -56,6 +56,7 @@ | |||
56 | #include <asm/desc.h> | 56 | #include <asm/desc.h> |
57 | #include <video/edid.h> | 57 | #include <video/edid.h> |
58 | #include <asm/e820.h> | 58 | #include <asm/e820.h> |
59 | #include <asm/mpspec.h> | ||
59 | #include <asm/dma.h> | 60 | #include <asm/dma.h> |
60 | #include <asm/gart.h> | 61 | #include <asm/gart.h> |
61 | #include <asm/mpspec.h> | 62 | #include <asm/mpspec.h> |
@@ -381,6 +382,9 @@ void __init setup_arch(char **cmdline_p) | |||
381 | * we are rounding upwards: | 382 | * we are rounding upwards: |
382 | */ | 383 | */ |
383 | end_pfn = e820_end_of_ram(); | 384 | end_pfn = e820_end_of_ram(); |
385 | |||
386 | /* pre allocte 4k for mptable mpc */ | ||
387 | early_reserve_e820_mpc_new(); | ||
384 | /* update e820 for memory not covered by WB MTRRs */ | 388 | /* update e820 for memory not covered by WB MTRRs */ |
385 | mtrr_bp_init(); | 389 | mtrr_bp_init(); |
386 | if (mtrr_trim_uncached_memory(end_pfn)) { | 390 | if (mtrr_trim_uncached_memory(end_pfn)) { |