• Andi Kleen's avatar
    [PATCH] i386: Consolidate modern APIC handling · 95d769aa
    Andi Kleen authored
    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: default avatarAndi Kleen <ak@suse.de>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    95d769aa
apic.c 33.4 KB