]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: ath12k: avoid unnecessary MSDU drop in the Rx error process
authorKarthikeyan Periyasamy <quic_periyasa@quicinc.com>
Tue, 11 Jun 2024 06:42:33 +0000 (09:42 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Tue, 11 Jun 2024 18:42:29 +0000 (21:42 +0300)
Currently, in the Rx error processing handler, once an MSDU drop is
detected, the subsequent MSDUs get unintentionally dropped due to the
previous drop flag being retained across all MSDU processing, leading
to the discarding of valid MSDUs. To resolve this issue, the drop flag
should be reset to false before processing each descriptor.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1

Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240604062641.2956288-1-quic_periyasa@quicinc.com
drivers/net/wireless/ath/ath12k/dp_rx.c

index cb1f308f096b1d77061fd99b61f90a7da106aa14..54aea3c22311d7ad8b8872c6cd91ef456f6c4868 100644 (file)
@@ -3402,7 +3402,7 @@ int ath12k_dp_rx_process_err(struct ath12k_base *ab, struct napi_struct *napi,
        struct ath12k *ar;
        dma_addr_t paddr;
        bool is_frag;
-       bool drop = false;
+       bool drop;
        int pdev_id;
 
        tot_n_bufs_reaped = 0;
@@ -3420,7 +3420,9 @@ int ath12k_dp_rx_process_err(struct ath12k_base *ab, struct napi_struct *napi,
 
        while (budget &&
               (reo_desc = ath12k_hal_srng_dst_get_next_entry(ab, srng))) {
+               drop = false;
                ab->soc_stats.err_ring_pkts++;
+
                ret = ath12k_hal_desc_reo_parse_err(ab, reo_desc, &paddr,
                                                    &desc_bank);
                if (ret) {