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/20260120092137.2161162-1-mmyangfl@gmail.com
- 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