qcacmn: Add error print for matching ppdu_id during HAL processing

When matching ppdu_id is detected during HAL processing, then print the
error message instead of going for assert.

Change-Id: I8f58359a66fbeaf2ebc98477f65bab446c0a784b
CRs-Fixed: 2747953
This commit is contained in:
Harsh Kumar Bijlani
2020-08-05 14:02:30 +05:30
committed by snandini
parent 82eb94c989
commit c58c061890
3 changed files with 14 additions and 11 deletions

View File

@@ -2039,10 +2039,10 @@ dp_rx_pdev_mon_status_desc_pool_init(struct dp_pdev *pdev, uint32_t mac_id)
qdf_mem_zero(&pdev->ppdu_info, sizeof(pdev->ppdu_info)); qdf_mem_zero(&pdev->ppdu_info, sizeof(pdev->ppdu_info));
/* /*
* Set ppdu_id to HAL_INVALID_PPDU_ID in order to avoid ppdu_id * Set last_ppdu_id to HAL_INVALID_PPDU_ID in order to avoid ppdu_id
* match with '0' ppdu_id from monitor status ring * match with '0' ppdu_id from monitor status ring
*/ */
pdev->ppdu_info.com_info.ppdu_id = HAL_INVALID_PPDU_ID; pdev->ppdu_info.com_info.last_ppdu_id = HAL_INVALID_PPDU_ID;
qdf_mem_zero(&pdev->rx_mon_stats, sizeof(pdev->rx_mon_stats)); qdf_mem_zero(&pdev->rx_mon_stats, sizeof(pdev->rx_mon_stats));

View File

@@ -480,6 +480,7 @@ struct hal_rx_ppdu_common_info {
uint32_t mpdu_cnt_fcs_ok; uint32_t mpdu_cnt_fcs_ok;
uint32_t mpdu_cnt_fcs_err; uint32_t mpdu_cnt_fcs_err;
uint32_t mpdu_fcs_ok_bitmap[HAL_RX_NUM_WORDS_PER_PPDU_BITMAP]; uint32_t mpdu_fcs_ok_bitmap[HAL_RX_NUM_WORDS_PER_PPDU_BITMAP];
uint32_t last_ppdu_id;
uint32_t mpdu_cnt; uint32_t mpdu_cnt;
uint8_t num_users; uint8_t num_users;
}; };

View File

@@ -568,14 +568,16 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
case WIFIRX_PPDU_START_E: case WIFIRX_PPDU_START_E:
{ {
if (qdf_likely(ppdu_info->com_info.ppdu_id != if (qdf_unlikely(ppdu_info->com_info.last_ppdu_id ==
HAL_RX_GET(rx_tlv, RX_PPDU_START_0, PHY_PPDU_ID))) HAL_RX_GET(rx_tlv, RX_PPDU_START_0, PHY_PPDU_ID)))
hal_err("Matching ppdu_id(%u) detected",
ppdu_info->com_info.last_ppdu_id);
/* Reset ppdu_info before processing the ppdu */ /* Reset ppdu_info before processing the ppdu */
qdf_mem_zero(ppdu_info, qdf_mem_zero(ppdu_info,
sizeof(struct hal_rx_ppdu_info)); sizeof(struct hal_rx_ppdu_info));
else
qdf_assert_always(0);
ppdu_info->com_info.last_ppdu_id =
ppdu_info->com_info.ppdu_id = ppdu_info->com_info.ppdu_id =
HAL_RX_GET(rx_tlv, RX_PPDU_START_0, HAL_RX_GET(rx_tlv, RX_PPDU_START_0,
PHY_PPDU_ID); PHY_PPDU_ID);