[PATCH net] net: xilinx: axienet: fix potential memory leak in axienet_start_xmit()

Pandey, Radhey Shyam radhey.shyam.pandey at amd.com
Mon Oct 14 10:12:57 PDT 2024


> -----Original Message-----
> From: Wang Hai <wanghai38 at huawei.com>
> Sent: Monday, October 14, 2024 8:07 PM
> To: Pandey, Radhey Shyam <radhey.shyam.pandey at amd.com>;
> davem at davemloft.net; edumazet at google.com; kuba at kernel.org;
> pabeni at redhat.com; Simek, Michal <michal.simek at amd.com>;
> andre.przywara at arm.com; zhangxiaoxu5 at huawei.com
> Cc: netdev at vger.kernel.org; linux-arm-kernel at lists.infradead.org; linux-
> kernel at vger.kernel.org; wanghai38 at huawei.com
> 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 at huawei.com>

Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey at amd.com>
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




More information about the linux-arm-kernel mailing list