diff options
author | Yinghai Lu <yinghai@kernel.org> | 2009-12-10 22:07:22 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-12-11 09:28:22 +0100 |
commit | 893f38d144a4d96d2483cd7c3801d26e1b2c23e9 (patch) | |
tree | a21107699f5b9938db07697ed2b0ff3c725bf266 /arch/x86/kernel/head64.c | |
parent | x86, AMD: Fix stale cpuid4_info shared_map data in shared_cpu_map cpumasks (diff) | |
download | linux-893f38d144a4d96d2483cd7c3801d26e1b2c23e9.tar.xz linux-893f38d144a4d96d2483cd7c3801d26e1b2c23e9.zip |
x86: Use find_e820() instead of hard coded trampoline address
Jens found the following crash/regression:
[ 0.000000] found SMP MP-table at [ffff8800000fdd80] fdd80
[ 0.000000] Kernel panic - not syncing: Overlapping early reservations 12-f011 MP-table mpc to 0-fff BIOS data page
and
[ 0.000000] Kernel panic - not syncing: Overlapping early reservations 12-f011 MP-table mpc to 6000-7fff TRAMPOLINE
and bisected it to b24c2a9 ("x86: Move find_smp_config()
earlier and avoid bootmem usage").
It turns out the BIOS is using the first 64k for mptable,
without reserving it.
So try to find good range for the real-mode trampoline instead of
hard coding it, in case some bios tries to use that range for sth.
Reported-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Tested-by: Jens Axboe <jens.axboe@oracle.com>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
LKML-Reference: <4B21630A.6000308@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/head64.c')
-rw-r--r-- | arch/x86/kernel/head64.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index 0b06cd778fd9..b5a9896ca1e7 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -98,8 +98,6 @@ void __init x86_64_start_reservations(char *real_mode_data) { copy_bootdata(__va(real_mode_data)); - reserve_trampoline_memory(); - reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS"); #ifdef CONFIG_BLK_DEV_INITRD |