public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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