fix regression disabling use of pause instruction for x86 a_spin
authorRich Felker <dalias@aerifal.cx>
Wed, 30 Mar 2016 01:22:52 +0000 (21:22 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 30 Mar 2016 01:27:28 +0000 (21:27 -0400)
commits e24984efd5c6ac5ea8e6cb6cd914fa8435d458bc and
16b55298dc4b6a54d287d7494e04542667ef8861 inadvertently disabled the
a_spin implementations for i386, x86_64, and x32 by defining a macro
named a_pause instead of a_spin. this should not have caused any
functional regression, but it inhibited cpu relaxation while spinning
for locks.

bug reported by George Kulakowski.

arch/i386/atomic_arch.h
arch/x32/atomic_arch.h
arch/x86_64/atomic_arch.h

index 6e67c4ce48f6852886c42a4a2a505e6ef83bb5ee..2b1a0490b4add8c61490f00339cd6a96e76cf1d3 100644 (file)
@@ -71,7 +71,7 @@ static inline void a_barrier()
        __asm__ __volatile__( "" : : : "memory" );
 }
 
-#define a_pause a_pause
+#define a_spin a_spin
 static inline void a_spin()
 {
        __asm__ __volatile__( "pause" : : : "memory" );
index 26098d3f83a02d6e22b88adff584691823fcb1c3..7daf4ae241efeb1eade8dd3f577774c6f44bf895 100644 (file)
@@ -87,7 +87,7 @@ static inline void a_barrier()
        __asm__ __volatile__( "" : : : "memory" );
 }
 
-#define a_pause a_pause
+#define a_spin a_spin
 static inline void a_spin()
 {
        __asm__ __volatile__( "pause" : : : "memory" );
index 9f47f80893532b3eccd73997ed99aee38417e78a..55fc6fb9816da89366622f438cb6f0b639393287 100644 (file)
@@ -96,7 +96,7 @@ static inline void a_barrier()
        __asm__ __volatile__( "" : : : "memory" );
 }
 
-#define a_pause a_pause
+#define a_spin a_spin
 static inline void a_spin()
 {
        __asm__ __volatile__( "pause" : : : "memory" );