* [patch] i386 need to pass virtual address to smp_read_mpc()
@ 2006-02-17 20:24 Daniel Yeisley
2006-02-17 20:34 ` Andi Kleen
2006-02-17 20:55 ` Andi Kleen
0 siblings, 2 replies; 3+ messages in thread
From: Daniel Yeisley @ 2006-02-17 20:24 UTC (permalink / raw)
To: linux-kernel; +Cc: akpm, ak
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>
---
diff -Naur -p linux-2.6.16-rc1-git3-7/arch/i386/kernel/mpparse.c linux-2.6.16-rc1-git3-7-a/arch/i386/kernel/mpparse.c
--- linux-2.6.16-rc1-git3-7/arch/i386/kernel/mpparse.c 2006-01-30 18:38:18.000000000 -0500
+++ linux-2.6.16-rc1-git3-7-a/arch/i386/kernel/mpparse.c 2006-02-16 04:51:35.551014272 -0500
@@ -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");
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] i386 need to pass virtual address to smp_read_mpc()
2006-02-17 20:24 [patch] i386 need to pass virtual address to smp_read_mpc() Daniel Yeisley
@ 2006-02-17 20:34 ` Andi Kleen
2006-02-17 20:55 ` Andi Kleen
1 sibling, 0 replies; 3+ messages in thread
From: Andi Kleen @ 2006-02-17 20:34 UTC (permalink / raw)
To: dan.yeisley; +Cc: linux-kernel, akpm
On Friday 17 February 2006 21:24, Daniel Yeisley wrote:
> 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.
Looks obviously correct. Should probably be in 2.6.16
-Andi
>
> Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com>
> ---
>
> diff -Naur -p linux-2.6.16-rc1-git3-7/arch/i386/kernel/mpparse.c linux-2.6.16-rc1-git3-7-a/arch/i386/kernel/mpparse.c
> --- linux-2.6.16-rc1-git3-7/arch/i386/kernel/mpparse.c 2006-01-30 18:38:18.000000000 -0500
> +++ linux-2.6.16-rc1-git3-7-a/arch/i386/kernel/mpparse.c 2006-02-16 04:51:35.551014272 -0500
> @@ -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");
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] i386 need to pass virtual address to smp_read_mpc()
2006-02-17 20:24 [patch] i386 need to pass virtual address to smp_read_mpc() Daniel Yeisley
2006-02-17 20:34 ` Andi Kleen
@ 2006-02-17 20:55 ` Andi Kleen
1 sibling, 0 replies; 3+ messages in thread
From: Andi Kleen @ 2006-02-17 20:55 UTC (permalink / raw)
To: dan.yeisley; +Cc: linux-kernel, akpm
On Friday 17 February 2006 21:24, Daniel Yeisley wrote:
> 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>
> ---
>
> diff -Naur -p linux-2.6.16-rc1-git3-7/arch/i386/kernel/mpparse.c linux-2.6.16-rc1-git3-7-a/arch/i386/kernel/mpparse.c
> --- linux-2.6.16-rc1-git3-7/arch/i386/kernel/mpparse.c 2006-01-30 18:38:18.000000000 -0500
> +++ linux-2.6.16-rc1-git3-7-a/arch/i386/kernel/mpparse.c 2006-02-16 04:51:35.551014272 -0500
> @@ -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)))
Actually the patch is broken. Andrew, if you merge it please add the missing { here.
Dan, please only submit patches that are compile tested at least.
-Andi
> 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");
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-02-17 20:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-17 20:24 [patch] i386 need to pass virtual address to smp_read_mpc() Daniel Yeisley
2006-02-17 20:34 ` Andi Kleen
2006-02-17 20:55 ` Andi Kleen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox