See each patch. My attempt at fixing whatever I did when I obviously didn't know enough^W about the C11 memory model, and at setting a better example for future generations...
Paolo Bonzini (5): atomic: introduce smp_mb_acquire and smp_mb_release cpus: use atomic_read to read seqlock-protected variables qemu-thread: use acquire/release to clarify semantics of QemuEvent rcu: simplify memory barriers atomic: base mb_read/mb_set on load-acquire and store-release cpus.c | 9 +-- docs/atomics.txt | 84 ++++++++++++++++------------ include/qemu/atomic.h | 139 ++++++++++++++++++++--------------------------- util/qemu-thread-posix.c | 15 ++++- util/qemu-thread-win32.c | 15 ++++- util/rcu.c | 11 ++-- 6 files changed, 143 insertions(+), 130 deletions(-) -- 2.7.4