This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch release/2.22/master updated. glibc-2.22-58-gab753f6


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, release/2.22/master has been updated
       via  ab753f625e1dd77d388d1db6b9ecae54e871de84 (commit)
      from  a07df04187284a7993d890d5164a4433cebfd930 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ab753f625e1dd77d388d1db6b9ecae54e871de84

commit ab753f625e1dd77d388d1db6b9ecae54e871de84
Author: Paul E. Murphy <murphyp@linux.vnet.ibm.com>
Date:   Fri Aug 21 14:39:01 2015 -0500

    powerpc: Fix tabort usage in syscalls
    
    Fix usage of tabort in generated syscalls.  r0 has special meaning
    when used with this instruction, thus it will not generate
    persistent errors, nor return an error code.  This mitigates poor
    CPU usage when performing elided critical sections.
    
    Additionally, transactions should be aborted when entering a user
    invoked syscall.  Otherwise the results of the transaction may be
    undefined.
    
    2015-08-25  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>
    
    	* sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION): Use
    	register other than r0 for tabort, it has special meaning.
    	* sysdeps/powerpc/powerpc64/sysdep.h (ABORT_TRANSACTION): Likewise
    	* sysdeps/unix.sysv/linux/powerpc/syscall.S (syscall): Abort
    	transaction before starting syscall.
    
    (cherry picked from commit 18173559a23e28055640b152e623d9f0d40ecca8)

diff --git a/ChangeLog b/ChangeLog
index 6c8f1ad..0b6deab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-08-25  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>
+
+	* sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION): Use
+	register other than r0 for tabort, it has special meaning.
+	* sysdeps/powerpc/powerpc64/sysdep.h (ABORT_TRANSACTION): Likewise
+	* sysdeps/unix.sysv/linux/powerpc/syscall.S (syscall): Abort
+	transaction before starting syscall.
+
 2016-04-04  Stefan Liebler  <stli@linux.vnet.ibm.com>
 
 	* sysdeps/s390/bits/link.h: (La_s390_vr) New typedef.
diff --git a/sysdeps/powerpc/powerpc32/sysdep.h b/sysdeps/powerpc/powerpc32/sysdep.h
index e16fe3e..ecb492a 100644
--- a/sysdeps/powerpc/powerpc32/sysdep.h
+++ b/sysdeps/powerpc/powerpc32/sysdep.h
@@ -95,8 +95,8 @@ GOT_LABEL:			;					      \
     lwz      0,TM_CAPABLE(2);	\
     cmpwi    0,0;		\
     beq	     1f;		\
-    li	     0,_ABORT_SYSCALL;	\
-    tabort.  0;			\
+    li       11,_ABORT_SYSCALL;	\
+    tabort.  11;		\
     .align 4;			\
 1:
 #else
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index bf2a884..a9d37ad 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -279,8 +279,8 @@ LT_LABELSUFFIX(name,_name_end): ; \
     lwz      0,TM_CAPABLE(13);	\
     cmpwi    0,0;		\
     beq	     1f;		\
-    li	     0,_ABORT_SYSCALL;	\
-    tabort.  0;			\
+    li       11,_ABORT_SYSCALL;	\
+    tabort.  11;		\
     .align 4;                   \
 1:
 #else
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall.S b/sysdeps/unix/sysv/linux/powerpc/syscall.S
index 157e3e3..4477303 100644
--- a/sysdeps/unix/sysv/linux/powerpc/syscall.S
+++ b/sysdeps/unix/sysv/linux/powerpc/syscall.S
@@ -18,6 +18,7 @@
 #include <sysdep.h>
 
 ENTRY (syscall)
+	ABORT_TRANSACTION
 	mr   r0,r3
 	mr   r3,r4
 	mr   r4,r5

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                 |    8 ++++++++
 sysdeps/powerpc/powerpc32/sysdep.h        |    4 ++--
 sysdeps/powerpc/powerpc64/sysdep.h        |    4 ++--
 sysdeps/unix/sysv/linux/powerpc/syscall.S |    1 +
 4 files changed, 13 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]