RE: [PATCH net] net: xilinx: axienet: fix potential memory leak in axienet_start_xmit()
From: Pandey, Radhey Shyam
Date: Mon Oct 14 2024 - 13:13:12 EST
> -----Original Message-----
> From: Wang Hai <wanghai38@xxxxxxxxxx>
> Sent: Monday, October 14, 2024 8:07 PM
> To: Pandey, Radhey Shyam <radhey.shyam.pandey@xxxxxxx>;
> davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx;
> pabeni@xxxxxxxxxx; Simek, Michal <michal.simek@xxxxxxx>;
> andre.przywara@xxxxxxx; zhangxiaoxu5@xxxxxxxxxx
> Cc: netdev@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; wanghai38@xxxxxxxxxx
> Subject: [PATCH net] 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: 71791dc8bdea ("net: axienet: Check for DMA mapping errors")
> Signed-off-by: Wang Hai <wanghai38@xxxxxxxxxx>
Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@xxxxxxx>
Thanks!
> ---
> drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> index ea7d7c03f48e..53cf1a927278 100644
> --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> @@ -1046,6 +1046,7 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device
> *ndev)
> if (net_ratelimit())
> netdev_err(ndev, "TX DMA mapping error\n");
> ndev->stats.tx_dropped++;
> + dev_kfree_skb_any(skb);
> return NETDEV_TX_OK;
> }
> desc_set_phys_addr(lp, phys, cur_p);
> @@ -1066,6 +1067,7 @@ axienet_start_xmit(struct sk_buff *skb, struct net_device
> *ndev)
> ndev->stats.tx_dropped++;
> axienet_free_tx_chain(lp, orig_tail_ptr, ii + 1,
> true, NULL, 0);
> + dev_kfree_skb_any(skb);
> return NETDEV_TX_OK;
> }
> desc_set_phys_addr(lp, phys, cur_p);
> --
> 2.17.1