[PATCH] Do not enforce unique IO_APIC_ID check for xAPIC systems (i386)
This patch is per Andi's request to remove NO_IOAPIC_CHECK from genapic and use heuristics to prevent unique I/O APIC ID check for systems that don't need it. The patch disables unique I/O APIC ID check for Xeon-based and other platforms that don't use serial APIC bus for interrupt delivery. Andi stated that AMD systems don't need unique IO_APIC_IDs either. Signed-off-by: Natalie Protasevich <Natalie.Protasevich@unisys.com> Cc: Andi Kleen <ak@muc.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
7c1def1652
commit
ca05fea6db
@@ -1658,6 +1658,12 @@ static void __init setup_ioapic_ids_from_mpc(void)
|
||||
unsigned char old_id;
|
||||
unsigned long flags;
|
||||
|
||||
/*
|
||||
* Don't check I/O APIC IDs for xAPIC systems. They have
|
||||
* no meaning without the serial APIC bus.
|
||||
*/
|
||||
if (!(boot_cpu_data.x86_vendor == X86_VENDOR_INTEL && boot_cpu_data.x86 < 15))
|
||||
return;
|
||||
/*
|
||||
* This is broken; anything with a real cpu count has to
|
||||
* circumvent this idiocy regardless.
|
||||
@@ -1684,10 +1690,6 @@ static void __init setup_ioapic_ids_from_mpc(void)
|
||||
mp_ioapics[apic].mpc_apicid = reg_00.bits.ID;
|
||||
}
|
||||
|
||||
/* Don't check I/O APIC IDs for some xAPIC systems. They have
|
||||
* no meaning without the serial APIC bus. */
|
||||
if (NO_IOAPIC_CHECK)
|
||||
continue;
|
||||
/*
|
||||
* Sanity check, is the ID really free? Every APIC in a
|
||||
* system must have a unique ID or we get lots of nice
|
||||
|
Reference in New Issue
Block a user