From 429f48062f130f7659b9c378d2bc9940a3c51dca Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Thu, 10 Jul 2008 15:12:05 +0200 Subject: [PATCH] --- yaml --- r: 100139 b: refs/heads/master c: b70d9c2473ffbe327f5d7364bfbf67e94c440af8 h: refs/heads/master i: 100137: ae31f0e93d6aaf28970d299b6cbff8bb38e5c173 100135: 953f1bccada2972a8c1f3435a90801469a4594aa v: v3 --- [refs] | 2 +- .../include/asm-x86/mach-visws/mach_apicdef.h | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 320cc69f4852..2bab3a6d0eb9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6649ababd52014afaca62a12aed37d797f9f865c +refs/heads/master: b70d9c2473ffbe327f5d7364bfbf67e94c440af8 diff --git a/trunk/include/asm-x86/mach-visws/mach_apicdef.h b/trunk/include/asm-x86/mach-visws/mach_apicdef.h index 826cfa97d778..e4b29ba37de6 100644 --- a/trunk/include/asm-x86/mach-visws/mach_apicdef.h +++ b/trunk/include/asm-x86/mach-visws/mach_apicdef.h @@ -1,12 +1,24 @@ #ifndef __ASM_MACH_APICDEF_H #define __ASM_MACH_APICDEF_H -#define APIC_ID_MASK (0xF<<24) +#include -static inline unsigned get_apic_id(unsigned long x) +#ifdef CONFIG_X86_64 +#define APIC_ID_MASK (0xFFu<<24) +#define GET_APIC_ID(x) (((x)>>24)&0xFFu) +#define SET_APIC_ID(x) (((x)<<24)) +#else +#define APIC_ID_MASK (0xF<<24) +static inline unsigned get_apic_id(unsigned long x) { - return (((x)>>24)&0xF); -} -#define GET_APIC_ID(x) get_apic_id(x) + unsigned int ver = GET_APIC_VERSION(apic_read(APIC_LVR)); + if (APIC_XAPIC(ver)) + return (((x)>>24)&0xFF); + else + return (((x)>>24)&0xF); +} + +#define GET_APIC_ID(x) get_apic_id(x) +#endif #endif