summaryrefslogtreecommitdiffstats
path: root/arch/x86/hyperv/hv_apic.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-11-09 10:37:10 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-11-09 10:37:10 +0100
commit9b085d6e889076928d307f05cabf76e35db1e63b (patch)
tree89c83eec98ed9bf07d07d8a7b0dea51564ecd61a /arch/x86/hyperv/hv_apic.c
parentdt-bindings: serial: 8250_omap: Add compatible for UART controller on AM64 SoC (diff)
parentLinux 5.10-rc3 (diff)
downloadlinux-9b085d6e889076928d307f05cabf76e35db1e63b.tar.xz
linux-9b085d6e889076928d307f05cabf76e35db1e63b.zip
Merge 5.10-rc3 into tty-next
We need the TTY/vt/serial fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/x86/hyperv/hv_apic.c')
-rw-r--r--arch/x86/hyperv/hv_apic.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/x86/hyperv/hv_apic.c b/arch/x86/hyperv/hv_apic.c
index 40e0e322161d..284e73661a18 100644
--- a/arch/x86/hyperv/hv_apic.c
+++ b/arch/x86/hyperv/hv_apic.c
@@ -273,11 +273,15 @@ void __init hv_apic_init(void)
pr_info("Hyper-V: Using enlightened APIC (%s mode)",
x2apic_enabled() ? "x2apic" : "xapic");
/*
- * With x2apic, architectural x2apic MSRs are equivalent to the
- * respective synthetic MSRs, so there's no need to override
- * the apic accessors. The only exception is
- * hv_apic_eoi_write, because it benefits from lazy EOI when
- * available, but it works for both xapic and x2apic modes.
+ * When in x2apic mode, don't use the Hyper-V specific APIC
+ * accessors since the field layout in the ICR register is
+ * different in x2apic mode. Furthermore, the architectural
+ * x2apic MSRs function just as well as the Hyper-V
+ * synthetic APIC MSRs, so there's no benefit in having
+ * separate Hyper-V accessors for x2apic mode. The only
+ * exception is hv_apic_eoi_write, because it benefits from
+ * lazy EOI when available, but the same accessor works for
+ * both xapic and x2apic because the field layout is the same.
*/
apic_set_eoi_write(hv_apic_eoi_write);
if (!x2apic_enabled()) {