Skip to content

Commit 99714e3

Browse files
Wang Haikuba-moo
authored andcommitted
net: xilinx: axienet: fix potential memory leak in axienet_start_xmit()
The axienet_start_xmit() returns NETDEV_TX_OK without freeing skb in case of dma_map_single() fails, add dev_kfree_skb_any() to fix it. Fixes: 71791dc ("net: axienet: Check for DMA mapping errors") Signed-off-by: Wang Hai <wanghai38@huawei.com> Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com> Link: https://patch.msgid.link/20241014143704.31938-1-wanghai38@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 56f51df commit 99714e3

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/net/ethernet/xilinx/xilinx_axienet_main.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,6 +1051,7 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
10511051
if (net_ratelimit())
10521052
netdev_err(ndev, "TX DMA mapping error\n");
10531053
ndev->stats.tx_dropped++;
1054+
dev_kfree_skb_any(skb);
10541055
return NETDEV_TX_OK;
10551056
}
10561057
desc_set_phys_addr(lp, phys, cur_p);
@@ -1071,6 +1072,7 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device *ndev)
10711072
ndev->stats.tx_dropped++;
10721073
axienet_free_tx_chain(lp, orig_tail_ptr, ii + 1,
10731074
true, NULL, 0);
1075+
dev_kfree_skb_any(skb);
10741076
return NETDEV_TX_OK;
10751077
}
10761078
desc_set_phys_addr(lp, phys, cur_p);

0 commit comments

Comments
 (0)