x86, x2apic: Fallback to xapic when BIOS doesn't setup interrupt-remapping
authorYinghai Lu <yinghai@kernel.org>
Thu, 22 Dec 2011 01:45:17 +0000 (17:45 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Fri, 23 Dec 2011 19:01:01 +0000 (11:01 -0800)
commitfb209bd891645bb87b9618b724f0b4928e0df3de
tree3b59766238dfedbe9f2164048008f4bb2c18a54e
parenta35fd28256e7736cc84af8931a16224f0bfaaf6c
x86, x2apic: Fallback to xapic when BIOS doesn't setup interrupt-remapping

On some of the recent Intel SNB platforms, by default bios is pre-enabling
x2apic mode in the cpu with out setting up interrupt-remapping.
This case was resulting in the kernel to panic as the cpu is already in
x2apic mode but the OS was not able to enable interrupt-remapping (which
is a pre-req for using x2apic capability).

On these platforms all the apic-ids are < 255 and the kernel can fallback to
xapic mode if the bios has not enabled interrupt-remapping (which is
mostly the case if the bios has not exported interrupt-remapping tables to the
OS).

Reported-by: Berck E. Nash <flyboy@gmail.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/20111222014632.600418637@sbsiddha-desk.sc.intel.com
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/apic.h
arch/x86/include/asm/apicdef.h
arch/x86/kernel/apic/apic.c
arch/x86/kernel/apic/io_apic.c