On 07.07.2023 03:47, Stewart Hildebrand wrote: > --- a/xen/arch/arm/include/asm/domain.h > +++ b/xen/arch/arm/include/asm/domain.h > @@ -298,8 +298,7 @@ static inline void arch_vcpu_block(struct vcpu *v) {} > > #define arch_vm_assist_valid_mask(d) (1UL << > VMASST_TYPE_runstate_update_flag) > > -/* vPCI is not available on Arm */ > -#define has_vpci(d) ({ (void)(d); false; }) > +#define has_vpci(d) ({ IS_ENABLED(CONFIG_HAS_VPCI) && is_hardware_domain(d); > })
While likely not much of a problem here, I think we should strive to write macros such that their arguments are evaluated exactly once in all cases (for side effects to occur exactly once). When that's not easily possible, so be it, but here it doesn't look problematic to swap both sides of the &&. Jan