[PATCH] APIC enumeration fixes
The following patch appears sound according to an audit to ensure that all of the codepaths where it was introduced were called after the APIC fixmappings were set up. This patch introduces get_physical_broadcast(), which checks the version ID of the local APIC to determine whether it's a serial APIC or xAPIC, and returns the correct physical broadcast ID. It replaces all uses of APIC_BROADCAST_ID and IO_APIC_MAX_ID with this in order to ensure. It also changes the checks during MP table parsing so the APIC ID is checked in tandem with the version number. I'm holding out for some kind of testing to get an idea of whether this covers the cases or introduces regressions, or whatever. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Showing
Please register or sign in to comment