x86: apic: Cleanup and simplify setup_local_APIC()
authorTejun Heo <tj@kernel.org>
Thu, 9 Dec 2010 10:47:21 +0000 (11:47 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 10 Dec 2010 12:46:26 +0000 (13:46 +0100)
commit0aa002fe602939370e9476e5ec32b562000a0425
tree9328b22674ec6eab144e464274f9f635fef37666
parent0e3fa13f4ee110de007bca3bf395b77997319fc8
x86: apic: Cleanup and simplify setup_local_APIC()

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: Tejun Heo <tj@kernel.org>
Acked-by: Cyrill Gorcunov <gorcunov@gmail.com>
Reviewed-by: Pekka Enberg <penberg@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: brgerst@gmail.com
LKML-Reference: <4D00B3B9.7060702@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/apic/apic.c