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
This commit is contained in:
Karunakar Dasineni
2017-10-31 09:05:44 -07:00
committed by snandini
parent 87f0c5d850
commit a7ee2c65f7

View File

@@ -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);