[PATCH] i386: Consolidate modern APIC handling
commit95d769aaf47abfc77b600631403ff5af6c990cff
authorAndi Kleen <ak@suse.de>
Fri, 7 Apr 2006 17:49:45 +0000 (7 19:49 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 9 Apr 2006 18:53:51 +0000 (9 11:53 -0700)
tree738fff854613a086e7c1ad04074fa596b8554760
parentd1530d82e02fd96d4634a6d6f6538c8b778c43af
[PATCH] i386: Consolidate modern APIC handling

AMD systems have a modern APIC that supports 8 bit IDs, but
don't have a XAPIC version number.  Add a new "modern_apic"
subfunction that handles this correctly and use it (nearly)
everywhere where XAPIC is tested for.

I removed one wart: the code specified that external APICs
would use an 8bit APIC ID. But I checked a real 82093 data sheet
and it says clearly that they only use 4bit. So I removed
this special case since it would a bit awkward to implement now.

I removed the valid APIC tests in mptable parsing completely. On any modern
system they only check against the full field width (8bit) anyways
and are no-ops. This also fixes them doing the wrong thing
on >8 core Opterons.

This makes i386 boot again on 16 core Opterons.

Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/apic.c
arch/i386/kernel/mpparse.c
include/asm-i386/apic.h