diff options
author | Tejun Heo <tj@kernel.org> | 2011-01-23 08:37:33 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-01-28 08:54:06 -0500 |
commit | acb8bc09c6185e4d3d582d0076aaa6a89f19d8c5 (patch) | |
tree | 72dbecce548a362c665a0c4c9fab428aaa854ecc /arch/x86/kernel/apic/numaq_32.c | |
parent | 7632611f534340182c832d2b139cb19676f24e1a (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.c | 2 |
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 | }; |