Commit ef1b2b8a authored by Jiang Liu's avatar Jiang Liu Committed by Thomas Gleixner

x86/apic: Handle XAPIC remap mode proper.

If remapping is in XAPIC mode, the setup code just skips X2APIC
initialization without checking max CPU APIC ID in system, which may
cause problem if system has a CPU with APIC ID bigger than 255.

Handle IR in XAPIC mode the same way as if remapping is disabled.

[ tglx: Split out from previous patch ]
Signed-off-by: default avatarJiang Liu <jiang.liu@linux.intel.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: iommu@lists.linux-foundation.org
Cc: H. Peter Anvin <hpa@linux.intel.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: David Rientjes <rientjes@google.com>
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
Cc: Jan Beulich <JBeulich@suse.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Oren Twaig <oren@scalemp.com>
Link: http://lkml.kernel.org/r/1420615903-28253-8-git-send-email-jiang.liu@linux.intel.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 07806c50
...@@ -1596,7 +1596,7 @@ static __init void try_to_enable_x2apic(int ir_stat) ...@@ -1596,7 +1596,7 @@ static __init void try_to_enable_x2apic(int ir_stat)
if (!x2apic_supported()) if (!x2apic_supported())
return; return;
if (ir_stat < 0) { if (ir_stat != IRQ_REMAP_X2APIC_MODE) {
/* IR is required if there is APIC ID > 255 even when running /* IR is required if there is APIC ID > 255 even when running
* under KVM * under KVM
*/ */
...@@ -1613,10 +1613,6 @@ static __init void try_to_enable_x2apic(int ir_stat) ...@@ -1613,10 +1613,6 @@ static __init void try_to_enable_x2apic(int ir_stat)
* only in physical mode * only in physical mode
*/ */
x2apic_force_phys(); x2apic_force_phys();
} else if (ir_stat == IRQ_REMAP_XAPIC_MODE) {
pr_info("x2apic not enabled, IRQ remapping is in xapic mode\n");
return;
} }
if (!x2apic_mode) { if (!x2apic_mode) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment