On 64bit arches, struct u64_stats_sync is empty and provides no help against load/store tearing. memcpy() and struct copying should not be considered tear-free. Use u64_stats_reads() instead.
v1: https://lore.kernel.org/r/[email protected] - rename to u64_stats_reads() to clarify data flow direction - refine the implementation - add docs - fix struct copying too David Yang (7): u64_stats: Introduce u64_stats_reads() u64_stats: Doc incorrect usage with plain variables net: bridge: mcast: fix memcpy with u64_stats net: openvswitch: fix load tearing with u64_stats macsec: fix memcpy with u64_stats mpls: Fix load tearing with u64_stats vxlan: vnifilter: fix memcpy with u64_stats drivers/net/macsec.c | 6 ++-- drivers/net/vxlan/vxlan_vnifilter.c | 2 +- include/linux/u64_stats_sync.h | 56 ++++++++++++++++++++++++----- net/bridge/br_multicast.c | 2 +- net/mpls/af_mpls.c | 2 +- net/openvswitch/datapath.c | 3 +- 6 files changed, 55 insertions(+), 16 deletions(-) -- 2.51.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
