aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose E. Marchesi <jose.marchesi@oracle.com>2014-05-17 11:20:27 -0700
committerDavid S. Miller <davem@davemloft.net>2014-05-17 14:09:55 -0700
commit834caf06f33d79be54cff63c274fba2845513593 (patch)
treea9f1b268f46d99540332dd9220b139bc0f720f45
parente184a918bb5866a6488257d37ecc4e4ff747b7b7 (diff)
downloadglibc-834caf06f33d79be54cff63c274fba2845513593.tar
glibc-834caf06f33d79be54cff63c274fba2845513593.tar.gz
glibc-834caf06f33d79be54cff63c274fba2845513593.tar.bz2
glibc-834caf06f33d79be54cff63c274fba2845513593.zip
Fix sparc memcpy data corruption when using niagara2 optimized routines.
* sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Add missing membar to avoid block loads/stores to overlap previous stores.
-rw-r--r--ChangeLog6
-rw-r--r--NEWS2
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S1
3 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 7b1feb60cd..c606b0d5cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-05-17 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ [BZ #16958]
+ * sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Add missing
+ membar to avoid block loads/stores to overlap previous stores.
+
2014-05-17 Richard Henderson <rth@redhat.com>
* sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h (PSEUDO):
diff --git a/NEWS b/NEWS
index 052ada84b8..6d677db32e 100644
--- a/NEWS
+++ b/NEWS
@@ -17,7 +17,7 @@ Version 2.20
16712, 16713, 16714, 16731, 16739, 16740, 16743, 16754, 16758, 16759,
16760, 16770, 16786, 16789, 16791, 16799, 16800, 16815, 16823, 16824,
16831, 16838, 16849, 16854, 16876, 16877, 16885, 16888, 16890, 16912,
- 16916, 16917, 16922, 16927, 16928, 16932, 16943.
+ 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958.
* The minimum Linux kernel version that this version of the GNU C Library
can be used with is 2.6.32.
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
index b43a9e3e53..a1a9642bd8 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S
@@ -211,6 +211,7 @@ ENTRY(__memcpy_niagara2)
*/
VISEntryHalf
+ membar #Sync
alignaddr %o1, %g0, %g0
add %o1, (64 - 1), %o4