[PATCH ath-next] wifi: ath12k: Fix memory leak due to multiple rx_stats allocation

Mahendran P quic_mahep at quicinc.com
Mon Mar 31 21:29:33 PDT 2025


On 3/27/2025 3:05 AM, Muna Sinada wrote:
> From: Sidhanta Sahu <sidhanta.sahu at oss.qualcomm.com>
> 
> rx_stats for each arsta is allocated when adding a station.
> arsta->rx_stats will be freed when a station is removed.
> 
> Redundant allocations are occurring when the same station is added
> multiple times. This causes ath12k_mac_station_add() to be called
> multiple times, and rx_stats is allocated each time. As a result there
> is memory leaks.
> 
> Prevent multiple allocations of rx_stats when ath12k_mac_station_add()
> is called repeatedly by checking if rx_stats is already allocated
> before allocating again. Allocate arsta->rx_stats if arsta->rx_stats
> is NULL respectively.
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Sidhanta Sahu <sidhanta.sahu at oss.qualcomm.com>
> Signed-off-by: Muna Sinada <muna.sinada at oss.qualcomm.com>
> ---
>  drivers/net/wireless/ath/ath12k/mac.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
> index 842eda56c8b1..f157a85111d9 100644
> --- a/drivers/net/wireless/ath/ath12k/mac.c
> +++ b/drivers/net/wireless/ath/ath12k/mac.c
> @@ -5663,10 +5663,13 @@ static int ath12k_mac_station_add(struct ath12k *ar,
>  			    ar->max_num_stations);
>  		goto exit;
>  	}
> -	arsta->rx_stats = kzalloc(sizeof(*arsta->rx_stats), GFP_KERNEL);
> +
>  	if (!arsta->rx_stats) {
> -		ret = -ENOMEM;
> -		goto dec_num_station;
> +		arsta->rx_stats = kzalloc(sizeof(*arsta->rx_stats), GFP_KERNEL);
> +		if (!arsta->rx_stats) {
> +			ret = -ENOMEM;
> +			goto dec_num_station;
> +		}
>  	}
>  
>  	peer_param.vdev_id = arvif->vdev_id;
> 
> base-commit: c0dd3f4f70918cbcdd8da611811036a91b7dce33

Reviewed-by: Mahendran P <quic_mahep at quicinc.com>



More information about the ath12k mailing list