• Suresh Siddha's avatar
    x86: Fix double enable_IR_x2apic() call on SMP kernel on !SMP boards · 472a474c
    Suresh Siddha authored
    Jan Grossmann reported kernel boot panic while booting SMP
    kernel on his system with a single core cpu. SMP kernels call
    enable_IR_x2apic() from native_smp_prepare_cpus() and on
    platforms where the kernel doesn't find SMP configuration we
    ended up again calling enable_IR_x2apic() from the
    APIC_init_uniprocessor() call in the smp_sanity_check(). Thus
    leading to kernel panic.
    
    Don't call enable_IR_x2apic() and default_setup_apic_routing()
    from APIC_init_uniprocessor() in CONFIG_SMP case.
    
    NOTE: this kind of non-idempotent and assymetric initialization
    sequence is rather fragile and unclean, we'll clean that up
    in v2.6.35. This is the minimal fix for v2.6.34.
    
    Reported-by: Jan.Grossmann@kielnet.net
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Cc: <jbarnes@virtuousgeek.org>
    Cc: <david.woodhouse@intel.com>
    Cc: <weidong.han@intel.com>
    Cc: <youquan.song@intel.com>
    Cc: <Jan.Grossmann@kielnet.net>
    Cc: <stable@kernel.org> # [v2.6.32.x, v2.6.33.x]
    LKML-Reference: <1270083887.7835.78.camel@sbs-t61.sc.intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    472a474c
apic.c 54.1 KB