These patches introduce 2 new barrier primitives: smp_load_acquire(p) smp_store_release(p, v) See the first patch, which changes Documentation/memory-barriers.txt, to find the exact definitions of what an ACQUIRE/RELEASE barrier is -- previously known as LOCK/UNLOCK barriers. The second patch moves the smp_mb__{before,after}_atomic_{dec,inc}() barriers to asm/atomic.h for arc and hexagon -- they were already there for all other archs. This cleans up asm/barrier.h, and the third patch makes more agressive use of asm-generic/barrier.h to implement the simple cases. Then the fourth patch adds the new primitives. Previous versions were widely build tested -- this version is not, but it also not significantly different. These patches apply to: tip/master + lkml.kernel.org/r/20131211215850.GA810@xxxxxxxxxxxxxxxxxx --- Changes since the last version -- lkml.kernel.org/r/20131107220314.740353088@xxxxxxxxxxxxx - rebased - broke out the smp_mb__*atomic* movement - changed the ia64 implementation to use volatile instead of actual ASM goo -- Tony, do let me know if you would prefer to have the ASM goo back; but given you said that gcc-ia64 generates the right instructions for volatile... -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html