Re: 2.6.28-rc6: early panic with boot option "nosmp"

From: Yinghai Lu
Date: Thu Dec 04 2008 - 16:10:25 EST


Ingo Molnar wrote:
> * Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:
>
>>> The exception raised on dereferencing mpf or mpf_found.
>> This obvious patch should fix it then. Does it?
>>
>> --
>>
>> Fix early exception in __get_smp_config with nosmp
>>
>> Bail out early when there is no MP table.
>>
>> Reported by Wu Fengguang
>> Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>>
>> ---
>> arch/x86/kernel/mpparse.c | 3 +++
>> 1 file changed, 3 insertions(+)
>
> applied to tip/x86/urgent, thanks Andi!
>

looks like his system doesn't have mps table.
and when maxcpus=0, or nosmp will cause skip_ioapic_setup = 1, and acpi_ioapic = 0

but smp_found_config is set acpi_boot_init.. with madt.

could move that check earlier

diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index 0f4c1fd..18f90af 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -586,6 +586,9 @@ static void __init __get_smp_config(unsigned int early)
{
struct intel_mp_floating *mpf = mpf_found;

+ if (!mpf)
+ return;
+
if (x86_quirks->mach_get_smp_config) {
if (x86_quirks->mach_get_smp_config(early))
return;
@@ -604,9 +607,6 @@ static void __init __get_smp_config(unsigned int early)
printk(KERN_INFO "Using ACPI for processor (LAPIC) "
"configuration information\n");

- if (!mpf)
- return;
-
printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n",
mpf->mpf_specification);
#if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)



YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/