summaryrefslogtreecommitdiff
path: root/drivers/net/vxlan
diff options
context:
space:
mode:
authorDavid Yang <mmyangfl@gmail.com>2026-01-20 17:21:32 +0800
committerJakub Kicinski <kuba@kernel.org>2026-01-25 13:14:11 -0800
commit58d4ca5b69947c9d8ee197095e6c1c3b5c078716 (patch)
treeae5c98af46521fe37d038e67725932846152fc60 /drivers/net/vxlan
parent35710f0db8011e7ebbfb5b929a0575c3a09b761d (diff)
downloadlinux-next-58d4ca5b69947c9d8ee197095e6c1c3b5c078716.tar.gz
linux-next-58d4ca5b69947c9d8ee197095e6c1c3b5c078716.zip
vxlan: vnifilter: fix memcpy with u64_stats
On 64bit arches, struct u64_stats_sync is empty and provides no help against load/store tearing. memcpy() should not be considered atomic against u64 values. Use u64_stats_copy() instead. Signed-off-by: David Yang <mmyangfl@gmail.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Link: https://patch.msgid.link/20260120092137.2161162-5-mmyangfl@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/vxlan')
-rw-r--r--drivers/net/vxlan/vxlan_vnifilter.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/vxlan/vxlan_vnifilter.c b/drivers/net/vxlan/vxlan_vnifilter.c
index adc89e651e27..cde897d92f24 100644
--- a/drivers/net/vxlan/vxlan_vnifilter.c
+++ b/drivers/net/vxlan/vxlan_vnifilter.c
@@ -126,7 +126,7 @@ static void vxlan_vnifilter_stats_get(const struct vxlan_vni_node *vninode,
pstats = per_cpu_ptr(vninode->stats, i);
do {
start = u64_stats_fetch_begin(&pstats->syncp);
- memcpy(&temp, &pstats->stats, sizeof(temp));
+ u64_stats_copy(&temp, &pstats->stats, sizeof(temp));
} while (u64_stats_fetch_retry(&pstats->syncp, start));
dest->rx_packets += temp.rx_packets;