diff options
Diffstat (limited to 'include/asm-x86/smp.h')
-rw-r--r-- | include/asm-x86/smp.h | 7 |
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 | ||
177 | static 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 |
178 | extern int hard_smp_processor_id(void); | 183 | extern int hard_smp_processor_id(void); |
179 | # else | 184 | # else |
@@ -181,7 +186,7 @@ extern int hard_smp_processor_id(void); | |||
181 | static inline int hard_smp_processor_id(void) | 186 | static 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 | ||