[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 7/9] xen: use domid check in is_hardware_domain
Instead of checking is_privileged to determine if a domain should control the hardware, check that the domain_id is equal to zero (which is currently the only domain for which is_privileged is true). This allows other places where domain_id is checked for zero to be replaced with is_hardware_domain. Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> Cc: Keir Fraser <keir@xxxxxxx> --- xen/common/cpupool.c | 9 ++++++--- xen/common/domain.c | 10 +++++----- xen/include/xen/sched.h | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/xen/common/cpupool.c b/xen/common/cpupool.c index 10b10f8..0ecbbda 100644 --- a/xen/common/cpupool.c +++ b/xen/common/cpupool.c @@ -546,13 +546,16 @@ int cpupool_do_sysctl(struct xen_sysctl_cpupool_op *op) { struct domain *d; - ret = -EINVAL; - if ( op->domid == 0 ) - break; ret = -ESRCH; d = rcu_lock_domain_by_id(op->domid); if ( d == NULL ) break; + if ( is_hardware_domain(d) ) + { + ret = -EINVAL; + rcu_unlock_domain(d); + break; + } if ( d->cpupool == NULL ) { ret = -EINVAL; diff --git a/xen/common/domain.c b/xen/common/domain.c index ce6747c..02b631f 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -235,7 +235,7 @@ struct domain *domain_create( if ( domcr_flags & DOMCRF_hvm ) d->is_hvm = 1; - if ( domid == 0 ) + if ( is_hardware_domain(d) ) { d->is_pinned = opt_dom0_vcpus_pin; d->disable_migrate = 1; @@ -260,10 +260,10 @@ struct domain *domain_create( d->is_paused_by_controller = 1; atomic_inc(&d->pause_count); - if ( domid ) - d->nr_pirqs = nr_static_irqs + extra_domU_irqs; - else + if ( is_hardware_domain(d) ) d->nr_pirqs = nr_static_irqs + extra_dom0_irqs; + else + d->nr_pirqs = nr_static_irqs + extra_domU_irqs; if ( d->nr_pirqs > nr_irqs ) d->nr_pirqs = nr_irqs; @@ -543,7 +543,7 @@ void domain_shutdown(struct domain *d, u8 reason) d->shutdown_code = reason; reason = d->shutdown_code; - if ( d->domain_id == 0 ) + if ( is_hardware_domain(d) ) dom0_shutdown(reason); if ( d->is_shutting_down ) diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index bd1c7dc..45a5d7d 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -711,7 +711,7 @@ void watchdog_domain_destroy(struct domain *d); * (that is, this is would not be suitable for a driver domain) * - There is never a reason to deny dom0 access to this */ -#define is_hardware_domain(_d) ((_d)->is_privileged) +#define is_hardware_domain(_d) ((_d)->domain_id == 0) #define VM_ASSIST(_d,_t) (test_bit((_t), &(_d)->vm_assist)) -- 1.8.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |