summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Yeisley <dan.yeisley@unisys.com>2006-02-20 18:27:54 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-02-20 20:00:09 -0800
commit7d4c8e56109e0799ab9fb644c08a8daf4a026675 (patch)
tree31e94080489cf7c1348dac86d0606179742555e7
parent9b0f8b040acd8dfd23860754c0d09ff4f44e2cbc (diff)
downloadlinux-7d4c8e56109e0799ab9fb644c08a8daf4a026675.tar.gz
[PATCH] i386: need to pass virtual address to smp_read_mpc()
I'm seeing a kernel panic on an ES7000-600 when booting in virtual wire
mode.  The panic happens because smp_read_mpc() is passed a physical
address, and it should be virtual.  I tested the attached patch on the
ES7000-600 and on a 2 cpu Dell box, and saw no problems on either.

Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com>
Acked-by: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--arch/i386/kernel/mpparse.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c
index 0102f3d50e57..e7609abf3796 100644
--- a/arch/i386/kernel/mpparse.c
+++ b/arch/i386/kernel/mpparse.c
@@ -710,7 +710,7 @@ void __init get_smp_config (void)
 		 * Read the physical hardware table.  Anything here will
 		 * override the defaults.
 		 */
-		if (!smp_read_mpc((void *)mpf->mpf_physptr)) {
+		if (!smp_read_mpc(phys_to_virt(mpf->mpf_physptr))) {
 			smp_found_config = 0;
 			printk(KERN_ERR "BIOS bug, MP table errors detected!...\n");
 			printk(KERN_ERR "... disabling SMP support. (tell your hw vendor)\n");