Re: [PATCH net v2] net: pfcp: allocate per-cpu tstats for PFCP netdevs
From: Alexander Lobakin <aleksander.lobakin@intel.com>
Date: 2026-06-11 14:43:48
Also in:
lkml
From: Alexander Lobakin <aleksander.lobakin@intel.com>
Date: 2026-06-11 14:43:48
Also in:
lkml
From: Samuel Moelius <redacted> Date: Tue, 9 Jun 2026 23:22:45 +0000
PFCP uses dev_get_tstats64() as its ndo_get_stats64 callback, but
pfcp_link_setup() does not request NETDEV_PCPU_STAT_TSTATS. The net
core therefore leaves dev->tstats NULL for PFCP devices.
Creating a PFCP rtnetlink device can immediately ask the new netdev for
stats while building the RTM_NEWLINK notification. That reaches
dev_get_tstats64() and dereferences the NULL dev->tstats pointer.
Set pcpu_stat_type to NETDEV_PCPU_STAT_TSTATS during PFCP link setup so
the net core allocates the storage expected by dev_get_tstats64().
Fixes: 76c8764ef36a ("pfcp: add PFCP module")
Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <redacted>Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
--- Changes in v2: - Added fixes tag drivers/net/pfcp.c | 1 + 1 file changed, 1 insertion(+)diff --git a/drivers/net/pfcp.c b/drivers/net/pfcp.c index 28e6bc4a1f14..a6aa30ae0af7 100644 --- a/drivers/net/pfcp.c +++ b/drivers/net/pfcp.c@@ -148,6 +148,7 @@ static void pfcp_link_setup(struct net_device *dev) dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST; dev->priv_flags |= IFF_NO_QUEUE; + dev->pcpu_stat_type = NETDEV_PCPU_STAT_TSTATS; netif_keep_dst(dev); }
Thanks, Olek