summaryrefslogtreecommitdiffstats
path: root/include/asm-x86/smp.h
diff options
context:
space:
mode:
authorJack Steiner <steiner@sgi.com>2008-03-28 20:12:02 +0100
committerIngo Molnar <mingo@elte.hu>2008-04-17 17:41:33 +0200
commit05f2d12c3563dea8c81b301f9f3cf7919af23b13 (patch)
treed696f29159d311d8d1fde7f6bd1b01261ca713b9 /include/asm-x86/smp.h
parentx86: replace most VM86 flags with flags from processor-flags.h (diff)
downloadlinux-05f2d12c3563dea8c81b301f9f3cf7919af23b13.tar.xz
linux-05f2d12c3563dea8c81b301f9f3cf7919af23b13.zip
x86: change GET_APIC_ID() from an inline function to an out-of-line function
Introduce a function to read the local APIC_ID. This change is in preparation for additional changes to the APICID functions that will come in a later patch. Signed-off-by: Jack Steiner <steiner@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-x86/smp.h')
-rw-r--r--include/asm-x86/smp.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/asm-x86/smp.h b/include/asm-x86/smp.h
index bcbd25cbd863..c0d693ca4357 100644
--- a/include/asm-x86/smp.h
+++ b/include/asm-x86/smp.h
@@ -174,6 +174,11 @@ static inline int logical_smp_processor_id(void)
return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR));
}
+static inline unsigned int read_apic_id(void)
+{
+ return *(u32 *)(APIC_BASE + APIC_ID);
+}
+
# ifdef APIC_DEFINITION
extern int hard_smp_processor_id(void);
# else
@@ -181,7 +186,7 @@ extern int hard_smp_processor_id(void);
static inline int hard_smp_processor_id(void)
{
/* we don't want to mark this access volatile - bad code generation */
- return GET_APIC_ID(*(u32 *)(APIC_BASE + APIC_ID));
+ return GET_APIC_ID(read_apic_id());
}
# endif /* APIC_DEFINITION */