]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: altera-tse: fix skb leak on DMA mapping error in tse_start_xmit()
authorDavid Carlier <devnexen@gmail.com>
Wed, 1 Apr 2026 21:12:18 +0000 (22:12 +0100)
committerJakub Kicinski <kuba@kernel.org>
Fri, 3 Apr 2026 01:25:23 +0000 (18:25 -0700)
When dma_map_single() fails in tse_start_xmit(), the function returns
NETDEV_TX_OK without freeing the skb. Since NETDEV_TX_OK tells the
stack the packet was consumed, the skb is never freed, leaking memory
on every DMA mapping failure.

Add dev_kfree_skb_any() before returning to properly free the skb.

Fixes: bbd2190ce96d ("Altera TSE: Add main and header file for Altera Ethernet Driver")
Cc: stable@vger.kernel.org
Signed-off-by: David Carlier <devnexen@gmail.com>
Link: https://patch.msgid.link/20260401211218.279185-1-devnexen@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/altera/altera_tse_main.c

index 4342e2d026f82b76e03b5e0fa110e4ed131d5499..9eed0be4411e44ebd8cc29401046c5452da63e0e 100644 (file)
@@ -570,6 +570,7 @@ static netdev_tx_t tse_start_xmit(struct sk_buff *skb, struct net_device *dev)
                                  DMA_TO_DEVICE);
        if (dma_mapping_error(priv->device, dma_addr)) {
                netdev_err(priv->dev, "%s: DMA mapping error\n", __func__);
+               dev_kfree_skb_any(skb);
                ret = NETDEV_TX_OK;
                goto out;
        }