diff -r b5fc88aad1b0 xen/common/sched_credit.c --- a/xen/common/sched_credit.c Sun Feb 18 15:29:40 2007 +0000 +++ b/xen/common/sched_credit.c Mon Feb 19 14:05:49 2007 +0900 @@ -695,7 +695,7 @@ csched_vcpu_wake(struct vcpu *vc) __runq_tickle(cpu, svc); } -static int +static long csched_dom_cntl( struct domain *d, struct xen_domctl_scheduler_op *op) diff -r b5fc88aad1b0 xen/common/sched_sedf.c --- a/xen/common/sched_sedf.c Sun Feb 18 15:29:40 2007 +0000 +++ b/xen/common/sched_sedf.c Mon Feb 19 14:05:49 2007 +0900 @@ -1347,7 +1347,7 @@ static int sedf_adjust_weights(struct xe /* set or fetch domain scheduling parameters */ -static int sedf_adjust(struct domain *p, struct xen_domctl_scheduler_op *op) +static long sedf_adjust(struct domain *p, struct xen_domctl_scheduler_op *op) { struct vcpu *v; diff -r b5fc88aad1b0 xen/common/schedule.c --- a/xen/common/schedule.c Sun Feb 18 15:29:40 2007 +0000 +++ b/xen/common/schedule.c Mon Feb 19 14:08:16 2007 +0900 @@ -497,6 +497,7 @@ long sched_adjust(struct domain *d, stru 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) && @@ -525,8 +526,8 @@ long sched_adjust(struct domain *d, stru 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); @@ -537,7 +538,7 @@ long sched_adjust(struct domain *d, stru vcpu_unpause(v); } - return 0; + return ret; } /* diff -r b5fc88aad1b0 xen/include/xen/sched-if.h --- a/xen/include/xen/sched-if.h Sun Feb 18 15:29:40 2007 +0000 +++ b/xen/include/xen/sched-if.h Mon Feb 19 14:05:49 2007 +0900 @@ -75,7 +75,7 @@ struct scheduler { struct task_slice (*do_schedule) (s_time_t); int (*pick_cpu) (struct vcpu *); - int (*adjust) (struct domain *, + long (*adjust) (struct domain *, struct xen_domctl_scheduler_op *); void (*dump_settings) (void); void (*dump_cpu_state) (int);