Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lib/ovs-atomic-gcc4+: Use 'volatile' to enforce memory access.
Use 'volatile' to enforce a new memory access on each lockless atomic store and read. Without this a loop consisting of an atomic_read with memory_order_relaxed would be simply optimized away. Also, using volatile is cheaper than adding a full compiler barrier (also) in that case. This use of a volatile cast mirrors the Linux kernel ACCESS_ONCE macro. Without this change the more rigorous atomic test cases introduced in a following patch will hang due to the atomic accesses being optimized away. Signed-off-by: Jarno Rajahalme <[email protected]> Acked-by: Ben Pfaff <[email protected]>
- Loading branch information