From: Tianyu Lan <ti...@microsoft.com>

When Secure AVIC is enabled, call Secure AVIC
function to allow Hyper-V to inject STIMER0 interrupt.

Signed-off-by: Tianyu Lan <ti...@microsoft.com>
---
 arch/x86/hyperv/hv_init.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
index 3d1d3547095a..591338162420 100644
--- a/arch/x86/hyperv/hv_init.c
+++ b/arch/x86/hyperv/hv_init.c
@@ -132,6 +132,10 @@ static int hv_cpu_init(unsigned int cpu)
                wrmsrq(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64);
        }
 
+       /* Allow Hyper-V stimer vector to be injected from Hypervisor. */
+       if (ms_hyperv.misc_features & HV_STIMER_DIRECT_MODE_AVAILABLE)
+               apic_update_vector(cpu, HYPERV_STIMER0_VECTOR, true);
+
        return hyperv_init_ghcb();
 }
 
@@ -239,6 +243,9 @@ static int hv_cpu_die(unsigned int cpu)
                *ghcb_va = NULL;
        }
 
+       if (ms_hyperv.misc_features & HV_STIMER_DIRECT_MODE_AVAILABLE)
+               apic_update_vector(cpu, HYPERV_STIMER0_VECTOR, false);
+
        hv_common_cpu_die(cpu);
 
        if (hv_vp_assist_page && hv_vp_assist_page[cpu]) {
-- 
2.25.1


Reply via email to