>From fffab4a5d012875ff6e842901e5bb7db00d9d0ed Mon Sep 17 00:00:00 2001 From: Kurt Kanzenbach Date: Wed, 21 Feb 2024 17:24:25 +0300 Subject: [PATCH] net: stmmac: Complete meta data only when enabled Currently using XDP sockets on stmmac results in a kernel crash: |[ 255.822584] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 |[...] |[ 255.822764] Call trace: |[ 255.822766] stmmac_tx_clean.constprop.0+0x848/0xc38 The program counter indicates xsk_tx_metadata_complete(). However, this function shouldn't be called unless metadata is actually enabled. Tested on imx93. Fixes: 1347b419318d ("net: stmmac: Add Tx HWTS support to XDP ZC") Signed-off-by: Kurt Kanzenbach Tested-by: Serge Semin --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 8000fa256dfc..f6c86478a820 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2634,7 +2634,8 @@ static int stmmac_tx_clean(struct stmmac_priv *priv, int budget, u32 queue, } if (skb) { stmmac_get_tx_hwtstamp(priv, p, skb); - } else { + } else if (tx_q->xsk_pool && + xp_tx_metadata_enabled(tx_q->xsk_pool)) { struct stmmac_xsk_tx_complete tx_compl = { .priv = priv, .desc = p, -- 2.43.0