• Tejun Heo's avatar
    x86: apic: Cleanup and simplify setup_local_APIC() · 0aa002fe
    Tejun Heo authored
    setup_local_APIC() is used to setup local APIC early during CPU
    initialization and already assumes that preemption is disabled on
    entry. However, The function unnecessarily disables and enables
    preemption and uses smp_processor_id() multiple times in and out of
    the nested preemption disabled section. This gives the wrong
    impression that the function might be able to handle being called with
    preemption enabled and/or migrated to another processor in the middle.
    
    Make it clear that the function is always called with preemption
    disabled, drop the confusing preemption disable block and call
    smp_processor_id() once at the beginning of the function.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarCyrill Gorcunov <gorcunov@gmail.com>
    Reviewed-by: default avatarPekka Enberg <penberg@kernel.org>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: brgerst@gmail.com
    LKML-Reference: <4D00B3B9.7060702@kernel.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    0aa002fe
apic.c 56.1 KB