X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=include%2Fasm-x86%2Fmach-default%2Fmach_apicdef.h;h=e4b29ba37de604894bae11681a9236bd64c041e7;hb=dd46e3ca73d136aa7f9f1813e4cbb6934c3611cc;hp=7bcb350c3ee80f7b76448fee2f7dac3fcfb6fc97;hpb=19f71153b9be219756c6b2757921433a69b7975c;p=linux-2.6-omap-h63xx.git diff --git a/include/asm-x86/mach-default/mach_apicdef.h b/include/asm-x86/mach-default/mach_apicdef.h index 7bcb350c3ee..e4b29ba37de 100644 --- a/include/asm-x86/mach-default/mach_apicdef.h +++ b/include/asm-x86/mach-default/mach_apicdef.h @@ -1,13 +1,24 @@ #ifndef __ASM_MACH_APICDEF_H #define __ASM_MACH_APICDEF_H -#define APIC_ID_MASK (0xF<<24) +#include +#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); +{ + 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