]> xenbits.xensource.com Git - xen.git/commitdiff
Return an error when a schedule-setting call fails.
authorEwan Mellor <ewan@xensource.com>
Fri, 23 Mar 2007 11:52:09 +0000 (11:52 +0000)
committerEwan Mellor <ewan@xensource.com>
Fri, 23 Mar 2007 11:52:09 +0000 (11:52 +0000)
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
xen/common/schedule.c

index f78319e3818bc345babb2f61c1535685f41d89f4..c361261ae7be470149d2b90100150d04ca6110fe 100644 (file)
@@ -524,6 +524,7 @@ int sched_id(void)
 long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
 {
     struct vcpu *v;
+    long ret;
     
     if ( (op->sched_id != ops.sched_id) ||
          ((op->cmd != XEN_DOMCTL_SCHEDOP_putinfo) &&
@@ -552,8 +553,8 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
     if ( d == current->domain )
         vcpu_schedule_lock_irq(current);
 
-    SCHED_OP(adjust, d, op);
-    TRACE_1D(TRC_SCHED_ADJDOM, d->domain_id);
+    if ( (ret = SCHED_OP(adjust, d, op)) == 0 )
+        TRACE_1D(TRC_SCHED_ADJDOM, d->domain_id);
 
     if ( d == current->domain )
         vcpu_schedule_unlock_irq(current);
@@ -564,7 +565,7 @@ long sched_adjust(struct domain *d, struct xen_domctl_scheduler_op *op)
             vcpu_unpause(v);
     }
 
-    return 0;
+    return ret;
 }
 
 static void vcpu_periodic_timer_work(struct vcpu *v)