mirror of https://github.com/proxmox/mirror_qemu
atomics: Remove redundant barrier()'s
Remove the redundant barrier() after the fence as agreed in previous discussion here: https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg00489.html Signed-off-by: Pranith Kumar <bobby.prani@gmail.com> Message-Id: <20160824204424.14041-3-bobby.prani@gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>master
parent
c2cd627ddb
commit
705ac1ca53
|
@ -72,16 +72,16 @@
|
||||||
* Add one here, and similarly in smp_rmb() and smp_read_barrier_depends().
|
* Add one here, and similarly in smp_rmb() and smp_read_barrier_depends().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define smp_mb() ({ barrier(); __atomic_thread_fence(__ATOMIC_SEQ_CST); barrier(); })
|
#define smp_mb() ({ barrier(); __atomic_thread_fence(__ATOMIC_SEQ_CST); })
|
||||||
#define smp_wmb() ({ barrier(); __atomic_thread_fence(__ATOMIC_RELEASE); barrier(); })
|
#define smp_wmb() ({ barrier(); __atomic_thread_fence(__ATOMIC_RELEASE); })
|
||||||
#define smp_rmb() ({ barrier(); __atomic_thread_fence(__ATOMIC_ACQUIRE); barrier(); })
|
#define smp_rmb() ({ barrier(); __atomic_thread_fence(__ATOMIC_ACQUIRE); })
|
||||||
|
|
||||||
/* Most compilers currently treat consume and acquire the same, but really
|
/* Most compilers currently treat consume and acquire the same, but really
|
||||||
* no processors except Alpha need a barrier here. Leave it in if
|
* no processors except Alpha need a barrier here. Leave it in if
|
||||||
* using Thread Sanitizer to avoid warnings, otherwise optimize it away.
|
* using Thread Sanitizer to avoid warnings, otherwise optimize it away.
|
||||||
*/
|
*/
|
||||||
#if defined(__SANITIZE_THREAD__)
|
#if defined(__SANITIZE_THREAD__)
|
||||||
#define smp_read_barrier_depends() ({ barrier(); __atomic_thread_fence(__ATOMIC_CONSUME); barrier(); })
|
#define smp_read_barrier_depends() ({ barrier(); __atomic_thread_fence(__ATOMIC_CONSUME); })
|
||||||
#elsif defined(__alpha__)
|
#elsif defined(__alpha__)
|
||||||
#define smp_read_barrier_depends() asm volatile("mb":::"memory")
|
#define smp_read_barrier_depends() asm volatile("mb":::"memory")
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue