qcacmn: remove assert for invalid release source case

Remove host assert when receiving invalid release source entry from
WBM2SW0 ring.

Change-Id: Iae62ce3008024c55c1dde79e4dd0cd93d7e6f5a4
CRs-Fixed: 2571826
This commit is contained in:
Jinwei Chen
2019-11-22 17:33:47 +08:00
committed by nshrivas
parent a8cf59455e
commit a9d46ad930
3 changed files with 12 additions and 12 deletions

View File

@@ -5815,6 +5815,8 @@ dp_print_soc_tx_stats(struct dp_soc *soc)
soc->stats.tx.wbm_internal_error[WBM_INT_ERROR_REO_NULL_LINK_DESC], soc->stats.tx.wbm_internal_error[WBM_INT_ERROR_REO_NULL_LINK_DESC],
soc->stats.tx.wbm_internal_error[WBM_INT_ERROR_REO_NULL_MSDU_BUFF], soc->stats.tx.wbm_internal_error[WBM_INT_ERROR_REO_NULL_MSDU_BUFF],
soc->stats.tx.wbm_internal_error[WBM_INT_ERROR_REO_BUFF_REAPED]); soc->stats.tx.wbm_internal_error[WBM_INT_ERROR_REO_BUFF_REAPED]);
DP_PRINT_STATS("Tx comp non wbm internal error = %d",
soc->stats.tx.non_wbm_internal_err);
DP_PRINT_STATS("Tx comp loop pkt limit hit = %d", DP_PRINT_STATS("Tx comp loop pkt limit hit = %d",
soc->stats.tx.tx_comp_loop_pkt_limit_hit); soc->stats.tx.tx_comp_loop_pkt_limit_hit);
DP_PRINT_STATS("Tx comp HP out of sync2 = %d", DP_PRINT_STATS("Tx comp HP out of sync2 = %d",

View File

@@ -3495,9 +3495,7 @@ more_data:
head_desc = NULL; head_desc = NULL;
tail_desc = NULL; tail_desc = NULL;
if (qdf_unlikely(dp_srng_access_start(int_ctx, soc, hal_ring_hdl))) { if (qdf_unlikely(dp_srng_access_start(int_ctx, soc, hal_ring_hdl))) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR, dp_err("HAL RING Access Failed -- %pK", hal_ring_hdl);
"%s %d : HAL RING Access Failed -- %pK",
__func__, __LINE__, hal_ring_hdl);
return 0; return 0;
} }
@@ -3513,8 +3511,7 @@ more_data:
(buffer_src != HAL_TX_COMP_RELEASE_SOURCE_FW)) { (buffer_src != HAL_TX_COMP_RELEASE_SOURCE_FW)) {
uint8_t wbm_internal_error; uint8_t wbm_internal_error;
QDF_TRACE(QDF_MODULE_ID_DP, dp_err_rl(
QDF_TRACE_LEVEL_FATAL,
"Tx comp release_src != TQM | FW but from %d", "Tx comp release_src != TQM | FW but from %d",
buffer_src); buffer_src);
hal_dump_comp_desc(tx_comp_hal_desc); hal_dump_comp_desc(tx_comp_hal_desc);
@@ -3533,9 +3530,7 @@ more_data:
hal_get_wbm_internal_error(tx_comp_hal_desc); hal_get_wbm_internal_error(tx_comp_hal_desc);
if (wbm_internal_error) { if (wbm_internal_error) {
QDF_TRACE(QDF_MODULE_ID_DP, dp_err_rl("Tx comp wbm_internal_error!!");
QDF_TRACE_LEVEL_ERROR,
"Tx comp wbm_internal_error!!!\n");
DP_STATS_INC(soc, tx.wbm_internal_error[WBM_INT_ERROR_ALL], 1); DP_STATS_INC(soc, tx.wbm_internal_error[WBM_INT_ERROR_ALL], 1);
if (HAL_TX_COMP_RELEASE_SOURCE_REO == if (HAL_TX_COMP_RELEASE_SOURCE_REO ==
@@ -3546,10 +3541,11 @@ more_data:
hal_tx_comp_get_buffer_type( hal_tx_comp_get_buffer_type(
tx_comp_hal_desc)); tx_comp_hal_desc));
continue;
} else { } else {
qdf_assert_always(0); dp_err_rl("Tx comp wbm_internal_error false");
DP_STATS_INC(soc, tx.non_wbm_internal_err, 1);
} }
continue;
} }
/* Get descriptor id */ /* Get descriptor id */

View File

@@ -704,6 +704,8 @@ struct dp_soc_stats {
uint32_t invalid_release_source; uint32_t invalid_release_source;
/* tx completion wbm_internal_error */ /* tx completion wbm_internal_error */
uint32_t wbm_internal_error[MAX_WBM_INT_ERROR_REASONS]; uint32_t wbm_internal_error[MAX_WBM_INT_ERROR_REASONS];
/* tx completion non_wbm_internal_error */
uint32_t non_wbm_internal_err;
/* TX Comp loop packet limit hit */ /* TX Comp loop packet limit hit */
uint32_t tx_comp_loop_pkt_limit_hit; uint32_t tx_comp_loop_pkt_limit_hit;
/* Head pointer Out of sync at the end of dp_tx_comp_handler */ /* Head pointer Out of sync at the end of dp_tx_comp_handler */