aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/schedule.c
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-01-11 10:49:10 +0000
committerDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-01-11 10:49:10 +0000
commitdfb32a89d40f3a45203895c63810305daecdc420 (patch)
tree99412d03671457208f7139e2e9df7ddcfd6f7eb3 /xen/common/schedule.c
parenta655abfd8a4bf03de9c9a8d820125be8323d64f8 (diff)
downloadxen-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.c10
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;