aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/numaq_32.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-01-23 08:37:33 -0500
committerIngo Molnar <mingo@elte.hu>2011-01-28 08:54:06 -0500
commitacb8bc09c6185e4d3d582d0076aaa6a89f19d8c5 (patch)
tree72dbecce548a362c665a0c4c9fab428aaa854ecc /arch/x86/kernel/apic/numaq_32.c
parent7632611f534340182c832d2b139cb19676f24e1a (diff)
x86: Add apic->x86_32_early_logical_apicid()
On x86_32, the mapping between cpu and logical apic ID differs depending on the specific apic implementation in use. The mapping is initialized while bringing up CPUs; however, this makes early inits ignore memory topology. Add a x86_32 specific apic->x86_32_early_logical_apicid() which is called early during boot to query the mapping. The mapping is later verified against the result of init_apic_ldr(). The method is allowed to return BAD_APICID if it can't be determined early. noop variant which always returns BAD_APICID is implemented and added to all x86_32 apic implementations. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: eric.dumazet@gmail.com Cc: yinghai@kernel.org Cc: brgerst@gmail.com Cc: gorcunov@gmail.com Cc: penberg@kernel.org Cc: shaohui.zheng@intel.com Cc: rientjes@google.com LKML-Reference: <1295789862-25482-8-git-send-email-tj@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic/numaq_32.c')
-rw-r--r--arch/x86/kernel/apic/numaq_32.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/apic/numaq_32.c b/arch/x86/kernel/apic/numaq_32.c
index 2b434d579e15..f1a8b120c49d 100644
--- a/arch/x86/kernel/apic/numaq_32.c
+++ b/arch/x86/kernel/apic/numaq_32.c
@@ -539,4 +539,6 @@ struct apic __refdata apic_numaq = {
539 .icr_write = native_apic_icr_write, 539 .icr_write = native_apic_icr_write,
540 .wait_icr_idle = native_apic_wait_icr_idle, 540 .wait_icr_idle = native_apic_wait_icr_idle,
541 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle, 541 .safe_wait_icr_idle = native_safe_apic_wait_icr_idle,
542
543 .x86_32_early_logical_apicid = noop_x86_32_early_logical_apicid,
542}; 544};