aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/smp.h
diff options
context:
space:
mode:
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)
174 return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR)); 174 return GET_APIC_LOGICAL_ID(*(u32 *)(APIC_BASE + APIC_LDR));
175} 175}
176 176
177static inline unsigned int read_apic_id(void)
178{
179 return *(u32 *)(APIC_BASE + APIC_ID);
180}
181
177# ifdef APIC_DEFINITION 182# ifdef APIC_DEFINITION
178extern int hard_smp_processor_id(void); 183extern int hard_smp_processor_id(void);
179# else 184# else
@@ -181,7 +186,7 @@ extern int hard_smp_processor_id(void);
181static inline int hard_smp_processor_id(void) 186static inline int hard_smp_processor_id(void)
182{ 187{
183 /* we don't want to mark this access volatile - bad code generation */ 188 /* we don't want to mark this access volatile - bad code generation */
184 return GET_APIC_ID(*(u32 *)(APIC_BASE + APIC_ID)); 189 return GET_APIC_ID(read_apic_id());
185} 190}
186# endif /* APIC_DEFINITION */ 191# endif /* APIC_DEFINITION */
187 192