summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vserver-sources/old/2.1.1_rc16/4414_vs2.1.1-rc16-sched-fix01.patch')
-rw-r--r--vserver-sources/old/2.1.1_rc16/4414_vs2.1.1-rc16-sched-fix01.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/vserver-sources/old/2.1.1_rc16/4414_vs2.1.1-rc16-sched-fix01.patch b/vserver-sources/old/2.1.1_rc16/4414_vs2.1.1-rc16-sched-fix01.patch
new file mode 100644
index 0000000..acc286a
--- /dev/null
+++ b/vserver-sources/old/2.1.1_rc16/4414_vs2.1.1-rc16-sched-fix01.patch
@@ -0,0 +1,26 @@
+Index: vserver-sources-2.1.1_2.6.16/kernel/vserver/sched.c
+===================================================================
+--- vserver-sources-2.1.1_2.6.16.orig/kernel/vserver/sched.c
++++ vserver-sources-2.1.1_2.6.16/kernel/vserver/sched.c
+@@ -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);