lkml.org 
[lkml]   [2010]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[092/197] x86: Fix double enable_IR_x2apic() call on SMP kernel on !SMP boards
    2.6.32-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Suresh Siddha <suresh.b.siddha@intel.com>

    commit 472a474c6630efd195d3738339fd1bdc8aa3b1aa upstream.

    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: Suresh 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>
    LKML-Reference: <1270083887.7835.78.camel@sbs-t61.sc.intel.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/kernel/apic/apic.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/arch/x86/kernel/apic/apic.c
    +++ b/arch/x86/kernel/apic/apic.c
    @@ -1664,8 +1664,10 @@ int __init APIC_init_uniprocessor(void)
    }
    #endif

    +#ifndef CONFIG_SMP
    enable_IR_x2apic();
    default_setup_apic_routing();
    +#endif

    verify_local_APIC();
    connect_bsp_APIC();



    \
     
     \ /
      Last update: 2010-04-22 22:21    [W:4.031 / U:1.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site