On 17/08/2018 16:12, Wei Liu wrote: > Since it is defined in common header file, introduce CONFIG_HVM to > Arm to avoid breakage. > > Signed-off-by: Wei Liu <wei.l...@citrix.com> > --- > xen/arch/arm/Kconfig | 3 +++ > xen/include/xen/sched.h | 6 ++++++ > 2 files changed, 9 insertions(+) > > diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig > index 586bc62..c0e969e 100644 > --- a/xen/arch/arm/Kconfig > +++ b/xen/arch/arm/Kconfig > @@ -52,6 +52,9 @@ config HAS_ITS > prompt "GICv3 ITS MSI controller support" if EXPERT = "y" > depends on GICV3 && !NEW_VGIC > > +config HVM > + def_bool y > + > config NEW_VGIC > bool > prompt "Use new VGIC implementation" > diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h > index 51ceebe..8fc3423 100644 > --- a/xen/include/xen/sched.h > +++ b/xen/include/xen/sched.h > @@ -879,8 +879,14 @@ void watchdog_domain_destroy(struct domain *d); > > #define is_pv_domain(d) ((d)->guest_type == guest_type_pv) > #define is_pv_vcpu(v) (is_pv_domain((v)->domain)) > + > +#if CONFIG_HVM > #define is_hvm_domain(d) ((d)->guest_type == guest_type_hvm) > +#else > +#define is_hvm_domain(d) (0) > +#endif > #define is_hvm_vcpu(v) (is_hvm_domain(v->domain))
The need for the following patch is caused by a bug here, in that you don't evaluate d. diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 51ceebe..fdd18a7 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -879,8 +879,17 @@ void watchdog_domain_destroy(struct domain *d); #define is_pv_domain(d) ((d)->guest_type == guest_type_pv) #define is_pv_vcpu(v) (is_pv_domain((v)->domain)) -#define is_hvm_domain(d) ((d)->guest_type == guest_type_hvm) -#define is_hvm_vcpu(v) (is_hvm_domain(v->domain)) + +static inline bool is_hvm_domain(const struct domain *d) +{ + return IS_ENABLED(CONFIG_HVM) ? d->guest_type == guest_type_hvm : false; +} + +static inline bool is_hvm_vcpu(const struct vcpu *v) +{ + return is_hvm_domain(v->domain); +} + #define is_pinned_vcpu(v) ((v)->domain->is_pinned || \ cpumask_weight((v)->cpu_hard_affinity) == 1) #ifdef CONFIG_HAS_PASSTHROUGH seems to compile, and should DTRT including all appropriate parameter evaluation. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel