diff -NurpP linux-2.6.16-vs2.1.1-rc16/kernel/vserver/sched.c linux-2.6.16-vs2.1.1-rc16.1/kernel/vserver/sched.c --- linux-2.6.16-vs2.1.1-rc16/kernel/vserver/sched.c 2006-04-12 01:54:01 +0200 +++ linux-2.6.16-vs2.1.1-rc16.1/kernel/vserver/sched.c 2006-04-12 19:50:16 +0200 @@ -159,7 +159,9 @@ on_hold: #ifdef CONFIG_VSERVER_HARDCPU /* next interval? */ - if (tokens > sched_pc->fill_rate[0]) + if (!sched_pc->fill_rate[0]) + delta_min[0] = HZ; + else if (tokens > sched_pc->fill_rate[0]) delta_min[0] += sched_pc->interval[0] * tokens / sched_pc->fill_rate[0]; vxd_check_range(delta_min[0], 0, INT_MAX); @@ -169,7 +171,9 @@ on_hold: return -1; /* next interval? */ - if (tokens > sched_pc->fill_rate[1]) + if (!sched_pc->fill_rate[1]) + delta_min[1] = HZ; + else if (tokens > sched_pc->fill_rate[1]) delta_min[1] += sched_pc->interval[1] * tokens / sched_pc->fill_rate[1]; vxd_check_range(delta_min[1], 0, INT_MAX);