Factor out logic for determining if we should set the auto eoi flag in SINT
register.

Signed-off-by: Nuno Das Neves <nunodasne...@linux.microsoft.com>
Reviewed-by: Wei Liu <wei....@kernel.org>
---
 drivers/hv/hv.c                | 12 +-----------
 include/asm-generic/mshyperv.h | 13 +++++++++++++
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
index 5ea104c61fa7..d7869205dcbe 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -315,17 +315,7 @@ void hv_synic_enable_regs(unsigned int cpu)
 
        shared_sint.vector = vmbus_interrupt;
        shared_sint.masked = false;
-
-       /*
-        * On architectures where Hyper-V doesn't support AEOI (e.g., ARM64),
-        * it doesn't provide a recommendation flag and AEOI must be disabled.
-        */
-#ifdef HV_DEPRECATING_AEOI_RECOMMENDED
-       shared_sint.auto_eoi =
-                       !(ms_hyperv.hints & HV_DEPRECATING_AEOI_RECOMMENDED);
-#else
-       shared_sint.auto_eoi = 0;
-#endif
+       shared_sint.auto_eoi = hv_recommend_using_aeoi();
        hv_set_register(HV_MSR_SINT0 + VMBUS_MESSAGE_SINT,
                        shared_sint.as_uint64);
 
diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
index 8cc7b0e316d7..3e715aa114da 100644
--- a/include/asm-generic/mshyperv.h
+++ b/include/asm-generic/mshyperv.h
@@ -82,6 +82,19 @@ extern u64 hv_do_fast_hypercall8(u16 control, u64 input8);
 bool hv_isolation_type_snp(void);
 bool hv_isolation_type_tdx(void);
 
+/*
+ * On architectures where Hyper-V doesn't support AEOI (e.g., ARM64),
+ * it doesn't provide a recommendation flag and AEOI must be disabled.
+ */
+static inline bool hv_recommend_using_aeoi(void)
+{
+#ifdef HV_DEPRECATING_AEOI_RECOMMENDED
+       return !(ms_hyperv.hints & HV_DEPRECATING_AEOI_RECOMMENDED);
+#else
+       return false;
+#endif
+}
+
 /* Helper functions that provide a consistent pattern for checking Hyper-V 
hypercall status. */
 static inline int hv_result(u64 status)
 {
-- 
2.25.1


Reply via email to