From: Rich Felker Date: Wed, 30 Mar 2016 01:22:52 +0000 (-0400) Subject: fix regression disabling use of pause instruction for x86 a_spin X-Git-Tag: v1.1.15~72 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5c3412d22555d03a1c00578ba8faaa8dc9206420;p=oweals%2Fmusl.git 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. --- diff --git a/arch/i386/atomic_arch.h b/arch/i386/atomic_arch.h index 6e67c4ce..2b1a0490 100644 --- a/arch/i386/atomic_arch.h +++ b/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" ); diff --git a/arch/x32/atomic_arch.h b/arch/x32/atomic_arch.h index 26098d3f..7daf4ae2 100644 --- a/arch/x32/atomic_arch.h +++ b/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" ); diff --git a/arch/x86_64/atomic_arch.h b/arch/x86_64/atomic_arch.h index 9f47f808..55fc6fb9 100644 --- a/arch/x86_64/atomic_arch.h +++ b/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" );