From 68dd5fcadc5b702c7d1426dea990ff0b55e62f42 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 29 Apr 2020 09:22:36 -0500 Subject: * Wed Apr 29 2020 Justin M. Forbes 5.7.0-0.rc3.20200428git51184ae37e05.1 - 51184ae37e05 rebase Resolves: rhbz# Signed-off-by: Justin M. Forbes --- ...Move-AEOI-determination-to-architecture-d.patch | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 0001-Drivers-hv-Move-AEOI-determination-to-architecture-d.patch (limited to '0001-Drivers-hv-Move-AEOI-determination-to-architecture-d.patch') diff --git a/0001-Drivers-hv-Move-AEOI-determination-to-architecture-d.patch b/0001-Drivers-hv-Move-AEOI-determination-to-architecture-d.patch new file mode 100644 index 000000000..c7bf7e8a4 --- /dev/null +++ b/0001-Drivers-hv-Move-AEOI-determination-to-architecture-d.patch @@ -0,0 +1,53 @@ +From 2ddddd0b4e89e1fc30ed257653239005d2f31f5b Mon Sep 17 00:00:00 2001 +From: Michael Kelley +Date: Mon, 20 Apr 2020 09:49:26 -0700 +Subject: [PATCH] Drivers: hv: Move AEOI determination to architecture + dependent code + +Hyper-V on ARM64 doesn't provide a flag for the AEOI recommendation +in ms_hyperv.hints, so having the test in architecture independent +code doesn't work. Resolve this by moving the check of the flag +to an architecture dependent helper function. No functionality is +changed. + +Signed-off-by: Michael Kelley +Link: https://lore.kernel.org/r/20200420164926.24471-1-mikelley@microsoft.com +Signed-off-by: Wei Liu +--- + arch/x86/include/asm/mshyperv.h | 2 ++ + drivers/hv/hv.c | 6 +----- + 2 files changed, 3 insertions(+), 5 deletions(-) + +diff --git a/arch/x86/include/asm/mshyperv.h b/arch/x86/include/asm/mshyperv.h +index 6b79515abb82..7c2bbd6675dc 100644 +--- a/arch/x86/include/asm/mshyperv.h ++++ b/arch/x86/include/asm/mshyperv.h +@@ -34,6 +34,8 @@ typedef int (*hyperv_fill_flush_list_func)( + rdmsrl(HV_X64_MSR_SINT0 + int_num, val) + #define hv_set_synint_state(int_num, val) \ + wrmsrl(HV_X64_MSR_SINT0 + int_num, val) ++#define hv_recommend_using_aeoi() \ ++ (!(ms_hyperv.hints & HV_DEPRECATING_AEOI_RECOMMENDED)) + + #define hv_get_crash_ctl(val) \ + rdmsrl(HV_X64_MSR_CRASH_CTL, val) +diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c +index 6098e0cbdb4b..533c8b82b344 100644 +--- a/drivers/hv/hv.c ++++ b/drivers/hv/hv.c +@@ -184,11 +184,7 @@ void hv_synic_enable_regs(unsigned int cpu) + + shared_sint.vector = HYPERVISOR_CALLBACK_VECTOR; + shared_sint.masked = false; +- if (ms_hyperv.hints & HV_DEPRECATING_AEOI_RECOMMENDED) +- shared_sint.auto_eoi = false; +- else +- shared_sint.auto_eoi = true; +- ++ shared_sint.auto_eoi = hv_recommend_using_aeoi(); + hv_set_synint_state(VMBUS_MESSAGE_SINT, shared_sint.as_uint64); + + /* Enable the global synic bit */ +-- +2.26.2 + -- cgit