On 23.04.2024 10:48, Sergiy Kibrik wrote: > --- a/xen/arch/x86/include/asm/vpmu.h > +++ b/xen/arch/x86/include/asm/vpmu.h > @@ -11,6 +11,7 @@ > #define __ASM_X86_HVM_VPMU_H_ > > #include <public/pmu.h> > +#include <xen/err.h> > > #define vcpu_vpmu(vcpu) (&(vcpu)->arch.vpmu) > #define vpmu_vcpu(vpmu) container_of((vpmu), struct vcpu, arch.vpmu) > @@ -42,9 +43,27 @@ struct arch_vpmu_ops { > #endif > }; > > +#ifdef CONFIG_INTEL > const struct arch_vpmu_ops *core2_vpmu_init(void); > +#else > +static inline const struct arch_vpmu_ops *core2_vpmu_init(void) > +{ > + return ERR_PTR(-ENODEV); > +} > +#endif > +#ifdef CONFIG_AMD > const struct arch_vpmu_ops *amd_vpmu_init(void); > const struct arch_vpmu_ops *hygon_vpmu_init(void); > +#else > +static inline const struct arch_vpmu_ops *amd_vpmu_init(void) > +{ > + return ERR_PTR(-ENODEV); > +} > +static inline const struct arch_vpmu_ops *hygon_vpmu_init(void) > +{ > + return ERR_PTR(-ENODEV); > +} > +#endif
Any reason you don't follow the approach used in patch 7, putting simple #ifdef in the switch() in vpmu_init()? That would avoid the need for the three almost identical stubs. Jan