[PATCH v2 2/2] wifi: ath12k: fix undefined behavior with __fls in dp

Jeff Johnson quic_jjohnson at quicinc.com
Mon Aug 21 08:27:53 PDT 2023


On 8/21/2023 6:03 AM, Harshitha Prem wrote:
> When max virtual ap interfaces are configured in all the bands
> with ACS and hostapd restart is done every 60s,
> a crash is observed at random times because of handling the
> uninitialized peer fragments with fragment id of packet as 0.
> 
> "__fls" would have an undefined behavior if the argument is passed
> as "0". Hence, added changes to handle the same.
> 
> Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")

this should be in the last section with the Signed-off-by

see 
<https://www.kernel.org/doc/html/latest/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes>

> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> 
> Signed-off-by: Harshitha Prem <quic_hprem at quicinc.com>
> ---
>   drivers/net/wireless/ath/ath12k/dp_rx.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/dp_rx.c b/drivers/net/wireless/ath/ath12k/dp_rx.c
> index 5923c7c9eaff..ea8dfea22be6 100644
> --- a/drivers/net/wireless/ath/ath12k/dp_rx.c
> +++ b/drivers/net/wireless/ath/ath12k/dp_rx.c
> @@ -3238,7 +3238,7 @@ static int ath12k_dp_rx_frag_h_mpdu(struct ath12k *ar,
>   		goto out_unlock;
>   	}
>   
> -	if (frag_no > __fls(rx_tid->rx_frag_bitmap))
> +	if ((!rx_tid->rx_frag_bitmap || frag_no > __fls(rx_tid->rx_frag_bitmap)))
>   		__skb_queue_tail(&rx_tid->rx_frags, msdu);
>   	else
>   		ath12k_dp_rx_h_sort_frags(ab, &rx_tid->rx_frags, msdu);




More information about the ath12k mailing list