浏览代码

fix regression disabling use of pause instruction for x86 a_spin

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.
Rich Felker 9 年之前
父节点
当前提交
5c3412d225
共有 3 个文件被更改,包括 3 次插入3 次删除
  1. 1 1
      arch/i386/atomic_arch.h
  2. 1 1
      arch/x32/atomic_arch.h
  3. 1 1
      arch/x86_64/atomic_arch.h

+ 1 - 1
arch/i386/atomic_arch.h

@@ -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" );

+ 1 - 1
arch/x32/atomic_arch.h

@@ -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" );

+ 1 - 1
arch/x86_64/atomic_arch.h

@@ -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" );