diff options
author | Daniel De Graaf <dgdegra@tycho.nsa.gov> | 2013-01-11 10:49:10 +0000 |
---|---|---|
committer | Daniel De Graaf <dgdegra@tycho.nsa.gov> | 2013-01-11 10:49:10 +0000 |
commit | dfb32a89d40f3a45203895c63810305daecdc420 (patch) | |
tree | 99412d03671457208f7139e2e9df7ddcfd6f7eb3 /xen/common/schedule.c | |
parent | a655abfd8a4bf03de9c9a8d820125be8323d64f8 (diff) | |
download | xen-dfb32a89d40f3a45203895c63810305daecdc420.tar.gz xen-dfb32a89d40f3a45203895c63810305daecdc420.tar.bz2 xen-dfb32a89d40f3a45203895c63810305daecdc420.zip |
xen/xsm: distinguish scheduler get/set operations
Add getscheduler and setscheduler permissions to replace the
monolithic scheduler permission in the scheduler_op domctl and sysctl.
Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/common/schedule.c')
-rw-r--r-- | xen/common/schedule.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/xen/common/schedule.c b/xen/common/schedule.c index 903f32d57c..f3fc6bcc3e 100644 --- a/xen/common/schedule.c +++ b/xen/common/schedule.c @@ -1006,7 +1006,11 @@ int sched_id(void) long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op) { long ret; - + + ret = xsm_domctl_scheduler_op(XSM_HOOK, d, op->cmd); + if ( ret ) + return ret; + if ( (op->sched_id != DOM2OP(d)->sched_id) || ((op->cmd != XEN_DOMCTL_SCHEDOP_putinfo) && (op->cmd != XEN_DOMCTL_SCHEDOP_getinfo)) ) @@ -1025,6 +1029,10 @@ long sched_adjust_global(struct xen_sysctl_scheduler_op *op) struct cpupool *pool; int rc; + rc = xsm_sysctl_scheduler_op(XSM_HOOK, op->cmd); + if ( rc ) + return rc; + if ( (op->cmd != XEN_DOMCTL_SCHEDOP_putinfo) && (op->cmd != XEN_DOMCTL_SCHEDOP_getinfo) ) return -EINVAL; |