[kernel] r13458 - in dists/lenny/linux-2.6/debian: . patches/bugfix/s390 patches/series
Dann Frazier
dannf at alioth.debian.org
Mon Apr 20 17:21:56 UTC 2009
Author: dannf
Date: Mon Apr 20 17:21:54 2009
New Revision: 13458
Log:
[s390] Fix __div64_31 for CONFIG_MARCH_G5 (Closes: #511334)
Added:
dists/lenny/linux-2.6/debian/patches/bugfix/s390/fix__div64_31_for_G5.patch
Modified:
dists/lenny/linux-2.6/debian/changelog
dists/lenny/linux-2.6/debian/patches/series/16
Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog Mon Apr 20 09:38:23 2009 (r13457)
+++ dists/lenny/linux-2.6/debian/changelog Mon Apr 20 17:21:54 2009 (r13458)
@@ -1,5 +1,6 @@
linux-2.6 (2.6.26-16) UNRELEASED; urgency=low
+ [ maximilian attems ]
* [openvz] 5dcfcf5 NETLINK: disable netns broadcast filtering.
(closes: #520551)
* Fix SQLite performance regression. (closes: #521420)
@@ -13,6 +14,9 @@
* [openvz] 5b58141 ubc: uncharging too much for TCPSNDBUF.
* [openvz] 0ff728e ve: show task's vpid and veid even inside a container.
+ [ dann frazier ]
+ * [s390] Fix __div64_31 for CONFIG_MARCH_G5 (Closes: #511334)
+
-- maximilian attems <maks at debian.org> Mon, 30 Mar 2009 17:11:49 +0200
linux-2.6 (2.6.26-15) stable; urgency=high
Added: dists/lenny/linux-2.6/debian/patches/bugfix/s390/fix__div64_31_for_G5.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/s390/fix__div64_31_for_G5.patch Mon Apr 20 17:21:54 2009 (r13458)
@@ -0,0 +1,31 @@
+commit 4fa81ed27781a12f6303b9263056635ae74e3e21
+Author: Martin Schwidefsky <schwidefsky at de.ibm.com>
+Date: Wed Mar 18 13:27:32 2009 +0100
+
+ [S390] __div64_31 broken for CONFIG_MARCH_G5
+
+ The implementation of __div64_31 for G5 machines is broken. The comments
+ in __div64_31 are correct, only the code does not do what the comments
+ say. The part "If the remainder has overflown subtract base and increase
+ the quotient" is only partially realized, the base is subtracted correctly
+ but the quotient is only increased if the dividend had the last bit set.
+ Using the correct instruction fixes the problem.
+
+ Cc: stable at kernel.org
+ Reported-by: Frans Pop <elendil at planet.nl>
+ Tested-by: Frans Pop <elendil at planet.nl>
+ Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
+
+diff --git a/arch/s390/lib/div64.c b/arch/s390/lib/div64.c
+index a5f8300..d9e62c0 100644
+--- a/arch/s390/lib/div64.c
++++ b/arch/s390/lib/div64.c
+@@ -61,7 +61,7 @@ static uint32_t __div64_31(uint64_t *n, uint32_t base)
+ " clr %0,%3\n"
+ " jl 0f\n"
+ " slr %0,%3\n"
+- " alr %1,%2\n"
++ " ahi %1,1\n"
+ "0:\n"
+ : "+d" (reg2), "+d" (reg3), "=d" (tmp)
+ : "d" (base), "2" (1UL) : "cc" );
Modified: dists/lenny/linux-2.6/debian/patches/series/16
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/16 Mon Apr 20 09:38:23 2009 (r13457)
+++ dists/lenny/linux-2.6/debian/patches/series/16 Mon Apr 20 17:21:54 2009 (r13458)
@@ -1 +1,2 @@
+ bugfix/all/0001-block-revert-part-of-18ce3751ccd488c78d3827e9f6bf54.patch
++ bugfix/s390/fix__div64_31_for_G5.patch
More information about the Kernel-svn-changes
mailing list