From a7ee2c65f7707fc9e482462b4bfa8b23b3aed1a9 Mon Sep 17 00:00:00 2001 From: Karunakar Dasineni Date: Tue, 31 Oct 2017 09:05:44 -0700 Subject: [PATCH] qcacmn: WAR for wrong MSDU count in Rx descriptor Due to a HW issue, msdu count received in REO entrance descriptor could be wrong in case of some error packets received on RXDMA2SW ring. Instead we should rely on Rx MSDU link descriptor entries being non-null to pop MSDUs. Change-Id: I1f4344752bdca13e9502aab79ee648b9b075d2e9 --- dp/wifi3.0/dp_rx_err.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index 0045eb601936..1801065cbdcb 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/dp/wifi3.0/dp_rx_err.c @@ -1133,11 +1133,7 @@ dp_rx_err_mpdu_pop(struct dp_soc *soc, uint32_t mac_id, qdf_assert(rx_msdu_link_desc); - num_msdus = (msdu_cnt > HAL_RX_NUM_MSDU_DESC)? - HAL_RX_NUM_MSDU_DESC:msdu_cnt; - hal_rx_msdu_list_get(rx_msdu_link_desc, &msdu_list, &num_msdus); - msdu_cnt -= num_msdus; if (msdu_list.sw_cookie[0] != HAL_RX_COOKIE_SPECIAL) { /* if the msdus belongs to NSS offloaded radio && @@ -1184,7 +1180,7 @@ dp_rx_err_mpdu_pop(struct dp_soc *soc, uint32_t mac_id, dp_rx_link_desc_return(soc, p_last_buf_addr_info, bm_action); p_last_buf_addr_info = p_buf_addr_info; - } while (buf_info.paddr && msdu_cnt); + } while (buf_info.paddr); DP_STATS_INC(soc, rx.err.rxdma_error[rxdma_error_code], 1);