rpms/kernel/F-10 linux-2.6.27.5-sched_clock-prevent-scd-clock-from-moving-backwards.patch, NONE, 1.1 kernel.spec, 1.1191, 1.1192

Chuck Ebbert cebbert at fedoraproject.org
Mon Dec 15 08:28:14 UTC 2008


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12891

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6.27.5-sched_clock-prevent-scd-clock-from-moving-backwards.patch 
Log Message:
Revert -stable patch that causes suspend problems (L-K BZ 12149, 12155)

linux-2.6.27.5-sched_clock-prevent-scd-clock-from-moving-backwards.patch:

--- NEW FILE linux-2.6.27.5-sched_clock-prevent-scd-clock-from-moving-backwards.patch ---
>From cebbert at redhat.com  Tue Nov  4 14:26:49 2008
From: Dave Kleikamp <shaggy at linux.vnet.ibm.com>
Date: Sun, 26 Oct 2008 18:20:14 -0400
Subject: sched_clock: prevent scd->clock from moving backwards
To: stable at kernel.org
Cc: Peter Zijlstra <peterz at infradead.org>, Molnar <mingo at elte.hu>, Ingo at hera.kernel.org
Message-ID: <20081026182014.3706d944 at redhat.com>

From: Dave Kleikamp <shaggy at linux.vnet.ibm.com>

commit 5b7dba4ff834259a5623e03a565748704a8fe449 upstream

sched_clock: prevent scd->clock from moving backwards

When sched_clock_cpu() couples the clocks between two cpus, it may
increment scd->clock beyond the GTOD tick window that __update_sched_clock()
uses to clamp the clock.  A later call to __update_sched_clock() may move
the clock back to scd->tick_gtod + TICK_NSEC, violating the clock's
monotonic property.

This patch ensures that scd->clock will not be set backward.

Signed-off-by: Dave Kleikamp <shaggy at linux.vnet.ibm.com>
Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Cc: Chuck Ebbert <cebbert at redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>

---
 kernel/sched_clock.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/kernel/sched_clock.c
+++ b/kernel/sched_clock.c
@@ -118,13 +118,13 @@ static u64 __update_sched_clock(struct s
 
 	/*
 	 * scd->clock = clamp(scd->tick_gtod + delta,
-	 * 		      max(scd->tick_gtod, scd->clock),
-	 * 		      scd->tick_gtod + TICK_NSEC);
+	 *		      max(scd->tick_gtod, scd->clock),
+	 *		      max(scd->clock, scd->tick_gtod + TICK_NSEC));
 	 */
 
 	clock = scd->tick_gtod + delta;
 	min_clock = wrap_max(scd->tick_gtod, scd->clock);
-	max_clock = scd->tick_gtod + TICK_NSEC;
+	max_clock = wrap_max(scd->clock, scd->tick_gtod + TICK_NSEC);
 
 	clock = wrap_max(clock, min_clock);
 	clock = wrap_min(clock, max_clock);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1191
retrieving revision 1.1192
diff -u -r1.1191 -r1.1192
--- kernel.spec	14 Dec 2008 07:47:40 -0000	1.1191
+++ kernel.spec	15 Dec 2008 08:27:44 -0000	1.1192
@@ -583,6 +583,8 @@
 Patch12: linux-2.6-lib-idr-fix-bug-introduced-by-rcu-fix.patch
 # fix VMI crash in 27.7
 Patch13: linux-2.6.27.7-vmi-fix-crash-on-boot.patch
+# revert 2.6.27.5 patch that causes suspend/resume failures
+Patch14: linux-2.6.27.5-sched_clock-prevent-scd-clock-from-moving-backwards.patch
 
 # Standalone patches
 Patch20: linux-2.6-hotfixes.patch
@@ -1104,6 +1106,7 @@
 
 ApplyPatch linux-2.6-lib-idr-fix-bug-introduced-by-rcu-fix.patch
 ApplyPatch linux-2.6.27.7-vmi-fix-crash-on-boot.patch
+ApplyPatch linux-2.6.27.5-sched_clock-prevent-scd-clock-from-moving-backwards.patch -R
 
 ApplyPatch linux-2.6-hotfixes.patch
 
@@ -1926,6 +1929,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Mon Dec 15 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-156
+- Revert -stable patch that causes suspend problems (L-K BZ 12149, 12155)
+
 * Sun Dec 14 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.27.9-155
 - Linux 2.6.27.9
 




More information about the fedora-extras-commits mailing list