From: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx> > > Factor out the check for enabling auto eoi, to be reused in root > partition code. Reviewed-by: Michael Kelley <mhklinux@xxxxxxxxxxx> > > Signed-off-by: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx> > --- > 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 a38f84548bc2..308c8f279df8 100644 > --- a/drivers/hv/hv.c > +++ b/drivers/hv/hv.c > @@ -313,17 +313,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_msr(HV_MSR_SINT0 + VMBUS_MESSAGE_SINT, shared_sint.as_uint64); > > /* Enable the global synic bit */ > diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h > index 258034dfd829..1f46d19a16aa 100644 > --- a/include/asm-generic/mshyperv.h > +++ b/include/asm-generic/mshyperv.h > @@ -77,6 +77,19 @@ extern u64 hv_do_fast_hypercall16(u16 control, u64 input1, u64 > input2); > 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 > +} > + > static inline struct hv_proximity_domain_info hv_numa_node_to_pxm_info(int node) > { > struct hv_proximity_domain_info pxm_info = {}; > -- > 2.34.1