• I
    x86: disable preemption in native_smp_prepare_cpus · deef3250
    Ingo Molnar 提交于
    Priit Laes reported the following warning:
    
    Call Trace:
     [<ffffffff8022f1e1>] warn_on_slowpath+0x51/0x63
     [<ffffffff80282e48>] sys_ioctl+0x2d/0x5d
     [<ffffffff805185ff>] _spin_lock+0xe/0x24
     [<ffffffff80227459>] task_rq_lock+0x3d/0x73
     [<ffffffff805133c3>] set_cpu_sibling_map+0x336/0x350
     [<ffffffff8021c1b8>] read_apic_id+0x30/0x62
     [<ffffffff806d921d>] verify_local_APIC+0x90/0x138
     [<ffffffff806d84b5>] native_smp_prepare_cpus+0x1f9/0x305
     [<ffffffff806ce7b1>] kernel_init+0x59/0x2d9
     [<ffffffff80518a26>] _spin_unlock_irq+0x11/0x2b
     [<ffffffff8020bf48>] child_rip+0xa/0x12
     [<ffffffff806ce758>] kernel_init+0x0/0x2d9
     [<ffffffff8020bf3e>] child_rip+0x0/0x12
    
    fix this by generally disabling preemption in native_smp_prepare_cpus().
    Reported-and-bisected-by: NPriit Laes <plaes@plaes.org>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
    deef3250
smpboot.c 35.8 KB