Message ID | 20211221160444.30890-1-dpsmith@apertussolutions.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v4] is_system_domain: replace open-coded instances | expand |
Hi, Daniel! On 21.12.21 18:04, Daniel P. Smith wrote: > From: Christopher Clark <christopher.w.clark@gmail.com> > > This is a split out of the hyperlaunch dom0 series. > > There were several instances of open-coded domid range checking. This commit > replaces those with the is_system_domain or is_system_domid inline function. > > Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com> > Signed-off-by: Daniel P. Smith <dpsmith@apertussolutions.com> > Acked-by: Dario Faggioli <dfaggioli@suse.com> Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> > --- > xen/arch/x86/cpu/mcheck/mce.c | 2 +- > xen/arch/x86/cpu/vpmu.c | 2 +- > xen/common/domain.c | 2 +- > xen/common/domctl.c | 4 ++-- > xen/common/sched/core.c | 4 ++-- > xen/include/xen/sched.h | 7 ++++++- > 6 files changed, 13 insertions(+), 8 deletions(-) > > diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c > index 7f433343bc..5c1df39075 100644 > --- a/xen/arch/x86/cpu/mcheck/mce.c > +++ b/xen/arch/x86/cpu/mcheck/mce.c > @@ -1518,7 +1518,7 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) > d = rcu_lock_domain_by_any_id(mc_msrinject->mcinj_domid); > if ( d == NULL ) > { > - if ( mc_msrinject->mcinj_domid >= DOMID_FIRST_RESERVED ) > + if ( is_system_domid(mc_msrinject->mcinj_domid) ) > return x86_mcerr("do_mca inject: incompatible flag " > "MC_MSRINJ_F_GPADDR with domain %d", > -EINVAL, domid); > diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c > index 8ec4547bed..c6bfa5a00e 100644 > --- a/xen/arch/x86/cpu/vpmu.c > +++ b/xen/arch/x86/cpu/vpmu.c > @@ -188,7 +188,7 @@ void vpmu_do_interrupt(struct cpu_user_regs *regs) > * in XENPMU_MODE_ALL, for everyone. > */ > if ( (vpmu_mode & XENPMU_MODE_ALL) || > - (sampled->domain->domain_id >= DOMID_FIRST_RESERVED) ) > + is_system_domain(sampled->domain) ) > { > sampling = choose_hwdom_vcpu(); > if ( !sampling ) > diff --git a/xen/common/domain.c b/xen/common/domain.c > index 093bb4403f..347cc073aa 100644 > --- a/xen/common/domain.c > +++ b/xen/common/domain.c > @@ -583,7 +583,7 @@ struct domain *domain_create(domid_t domid, > /* Sort out our idea of is_hardware_domain(). */ > if ( domid == 0 || domid == hardware_domid ) > { > - if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED ) > + if ( hardware_domid < 0 || is_system_domid(hardware_domid) ) > panic("The value of hardware_dom must be a valid domain ID\n"); > > old_hwdom = hardware_domain; > diff --git a/xen/common/domctl.c b/xen/common/domctl.c > index 879a2adcbe..a3ad1f62b6 100644 > --- a/xen/common/domctl.c > +++ b/xen/common/domctl.c > @@ -52,7 +52,7 @@ static inline int is_free_domid(domid_t dom) > { > struct domain *d; > > - if ( dom >= DOMID_FIRST_RESERVED ) > + if ( is_system_domid(dom) ) > return 0; > > if ( (d = rcu_lock_domain_by_id(dom)) == NULL ) > @@ -536,7 +536,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) > if ( !d ) > { > ret = -EINVAL; > - if ( op->domain >= DOMID_FIRST_RESERVED ) > + if ( is_system_domid(op->domain) ) > break; > > rcu_read_lock(&domlist_read_lock); > diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c > index 8f4b1ca10d..6ea8bcf62f 100644 > --- a/xen/common/sched/core.c > +++ b/xen/common/sched/core.c > @@ -821,7 +821,7 @@ int sched_init_domain(struct domain *d, unsigned int poolid) > int ret; > > ASSERT(d->cpupool == NULL); > - ASSERT(d->domain_id < DOMID_FIRST_RESERVED); > + ASSERT(!is_system_domain(d)); > > if ( (ret = cpupool_add_domain(d, poolid)) ) > return ret; > @@ -845,7 +845,7 @@ int sched_init_domain(struct domain *d, unsigned int poolid) > > void sched_destroy_domain(struct domain *d) > { > - ASSERT(d->domain_id < DOMID_FIRST_RESERVED); > + ASSERT(!is_system_domain(d)); > > if ( d->cpupool ) > { > diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h > index 28146ee404..cd575d01cf 100644 > --- a/xen/include/xen/sched.h > +++ b/xen/include/xen/sched.h > @@ -613,9 +613,14 @@ extern struct vcpu *idle_vcpu[NR_CPUS]; > #define is_idle_domain(d) ((d)->domain_id == DOMID_IDLE) > #define is_idle_vcpu(v) (is_idle_domain((v)->domain)) > > +static inline bool is_system_domid(domid_t id) > +{ > + return id >= DOMID_FIRST_RESERVED; > +} > + > static inline bool is_system_domain(const struct domain *d) > { > - return d->domain_id >= DOMID_FIRST_RESERVED; > + return is_system_domid(d->domain_id); > } > > #define DOMAIN_DESTROYED (1u << 31) /* assumes atomic_t is >= 32 bits */
diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c index 7f433343bc..5c1df39075 100644 --- a/xen/arch/x86/cpu/mcheck/mce.c +++ b/xen/arch/x86/cpu/mcheck/mce.c @@ -1518,7 +1518,7 @@ long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc) d = rcu_lock_domain_by_any_id(mc_msrinject->mcinj_domid); if ( d == NULL ) { - if ( mc_msrinject->mcinj_domid >= DOMID_FIRST_RESERVED ) + if ( is_system_domid(mc_msrinject->mcinj_domid) ) return x86_mcerr("do_mca inject: incompatible flag " "MC_MSRINJ_F_GPADDR with domain %d", -EINVAL, domid); diff --git a/xen/arch/x86/cpu/vpmu.c b/xen/arch/x86/cpu/vpmu.c index 8ec4547bed..c6bfa5a00e 100644 --- a/xen/arch/x86/cpu/vpmu.c +++ b/xen/arch/x86/cpu/vpmu.c @@ -188,7 +188,7 @@ void vpmu_do_interrupt(struct cpu_user_regs *regs) * in XENPMU_MODE_ALL, for everyone. */ if ( (vpmu_mode & XENPMU_MODE_ALL) || - (sampled->domain->domain_id >= DOMID_FIRST_RESERVED) ) + is_system_domain(sampled->domain) ) { sampling = choose_hwdom_vcpu(); if ( !sampling ) diff --git a/xen/common/domain.c b/xen/common/domain.c index 093bb4403f..347cc073aa 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -583,7 +583,7 @@ struct domain *domain_create(domid_t domid, /* Sort out our idea of is_hardware_domain(). */ if ( domid == 0 || domid == hardware_domid ) { - if ( hardware_domid < 0 || hardware_domid >= DOMID_FIRST_RESERVED ) + if ( hardware_domid < 0 || is_system_domid(hardware_domid) ) panic("The value of hardware_dom must be a valid domain ID\n"); old_hwdom = hardware_domain; diff --git a/xen/common/domctl.c b/xen/common/domctl.c index 879a2adcbe..a3ad1f62b6 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -52,7 +52,7 @@ static inline int is_free_domid(domid_t dom) { struct domain *d; - if ( dom >= DOMID_FIRST_RESERVED ) + if ( is_system_domid(dom) ) return 0; if ( (d = rcu_lock_domain_by_id(dom)) == NULL ) @@ -536,7 +536,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) if ( !d ) { ret = -EINVAL; - if ( op->domain >= DOMID_FIRST_RESERVED ) + if ( is_system_domid(op->domain) ) break; rcu_read_lock(&domlist_read_lock); diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c index 8f4b1ca10d..6ea8bcf62f 100644 --- a/xen/common/sched/core.c +++ b/xen/common/sched/core.c @@ -821,7 +821,7 @@ int sched_init_domain(struct domain *d, unsigned int poolid) int ret; ASSERT(d->cpupool == NULL); - ASSERT(d->domain_id < DOMID_FIRST_RESERVED); + ASSERT(!is_system_domain(d)); if ( (ret = cpupool_add_domain(d, poolid)) ) return ret; @@ -845,7 +845,7 @@ int sched_init_domain(struct domain *d, unsigned int poolid) void sched_destroy_domain(struct domain *d) { - ASSERT(d->domain_id < DOMID_FIRST_RESERVED); + ASSERT(!is_system_domain(d)); if ( d->cpupool ) { diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 28146ee404..cd575d01cf 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -613,9 +613,14 @@ extern struct vcpu *idle_vcpu[NR_CPUS]; #define is_idle_domain(d) ((d)->domain_id == DOMID_IDLE) #define is_idle_vcpu(v) (is_idle_domain((v)->domain)) +static inline bool is_system_domid(domid_t id) +{ + return id >= DOMID_FIRST_RESERVED; +} + static inline bool is_system_domain(const struct domain *d) { - return d->domain_id >= DOMID_FIRST_RESERVED; + return is_system_domid(d->domain_id); } #define DOMAIN_DESTROYED (1u << 31) /* assumes atomic_t is >= 32 bits */