]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ip_tunnel: adapt iptunnel_xmit_stats() to NETDEV_PCPU_STAT_DSTATS
authorEric Dumazet <edumazet@google.com>
Wed, 11 Mar 2026 12:31:10 +0000 (12:31 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 13 Mar 2026 02:24:45 +0000 (19:24 -0700)
commit8431c602f551549f082bbfa67f3003f2d8e3e132
tree6d0ba3c40190d3971e3c57d95a17efacabf9ab28
parente1f0a18c9564cdb16523c802e2c6fe5874e3d944
ip_tunnel: adapt iptunnel_xmit_stats() to NETDEV_PCPU_STAT_DSTATS

Blamed commits forgot that vxlan/geneve use udp_tunnel[6]_xmit_skb() which
call iptunnel_xmit_stats().

iptunnel_xmit_stats() was assuming tunnels were only using
NETDEV_PCPU_STAT_TSTATS.

@syncp offset in pcpu_sw_netstats and pcpu_dstats is different.

32bit kernels would either have corruptions or freezes if the syncp
sequence was overwritten.

This patch also moves pcpu_stat_type closer to dev->{t,d}stats to avoid
a potential cache line miss since iptunnel_xmit_stats() needs to read it.

Fixes: 6fa6de302246 ("geneve: Handle stats using NETDEV_PCPU_STAT_DSTATS.")
Fixes: be226352e8dc ("vxlan: Handle stats using NETDEV_PCPU_STAT_DSTATS.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Guillaume Nault <gnault@redhat.com>
Link: https://patch.msgid.link/20260311123110.1471930-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/netdevice.h
include/net/ip_tunnels.h