Commit:     58d5fa7a6a6fc4754d295d0999b284edd67c8620
Parent:     801916c1b369b637ce799e6c71a94963ff63df79
Author:     Siddha, Suresh B <[EMAIL PROTECTED]>
AuthorDate: Wed Oct 17 18:04:33 2007 +0200
Committer:  Thomas Gleixner <[EMAIL PROTECTED]>
CommitDate: Wed Oct 17 20:15:24 2007 +0200

    i386: fix 4 bit apicid assumption of mach-default
    Fix get_apic_id() in mach-default, so that it uses 8 bits incase of
    xAPIC case and 4 bits for legacy APIC case.
    This fixes the i386 kernel assumption that apic id is less than 16 for
    xAPIC platforms with 8 cpus or less and makes the kernel boot on such
    [ tglx: arch/x86 adaptation ]
    Signed-off-by: Suresh Siddha <[EMAIL PROTECTED]>
    Signed-off-by: Andi Kleen <[EMAIL PROTECTED]>
    Cc: Andi Kleen <[EMAIL PROTECTED]>
    Cc: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
 include/asm-x86/mach-default/mach_apicdef.h |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/include/asm-x86/mach-default/mach_apicdef.h 
index 7bcb350..ae98413 100644
--- a/include/asm-x86/mach-default/mach_apicdef.h
+++ b/include/asm-x86/mach-default/mach_apicdef.h
@@ -1,11 +1,17 @@
+#include <asm/apic.h>
 #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)
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to