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
diff --git a/dp/wifi3.0/dp_stats.c b/dp/wifi3.0/dp_stats.c
index 7dda552..3bc634a 100644
--- a/dp/wifi3.0/dp_stats.c
+++ b/dp/wifi3.0/dp_stats.c
@@ -5815,6 +5815,8 @@
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_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",
soc->stats.tx.tx_comp_loop_pkt_limit_hit);
DP_PRINT_STATS("Tx comp HP out of sync2 = %d",
diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c
index 799d4e8..cfff310 100644
--- a/dp/wifi3.0/dp_tx.c
+++ b/dp/wifi3.0/dp_tx.c
@@ -3495,9 +3495,7 @@
head_desc = NULL;
tail_desc = NULL;
if (qdf_unlikely(dp_srng_access_start(int_ctx, soc, hal_ring_hdl))) {
- QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
- "%s %d : HAL RING Access Failed -- %pK",
- __func__, __LINE__, hal_ring_hdl);
+ dp_err("HAL RING Access Failed -- %pK", hal_ring_hdl);
return 0;
}
@@ -3513,10 +3511,9 @@
(buffer_src != HAL_TX_COMP_RELEASE_SOURCE_FW)) {
uint8_t wbm_internal_error;
- QDF_TRACE(QDF_MODULE_ID_DP,
- QDF_TRACE_LEVEL_FATAL,
- "Tx comp release_src != TQM | FW but from %d",
- buffer_src);
+ dp_err_rl(
+ "Tx comp release_src != TQM | FW but from %d",
+ buffer_src);
hal_dump_comp_desc(tx_comp_hal_desc);
DP_STATS_INC(soc, tx.invalid_release_source, 1);
@@ -3533,9 +3530,7 @@
hal_get_wbm_internal_error(tx_comp_hal_desc);
if (wbm_internal_error) {
- QDF_TRACE(QDF_MODULE_ID_DP,
- QDF_TRACE_LEVEL_ERROR,
- "Tx comp wbm_internal_error!!!\n");
+ dp_err_rl("Tx comp wbm_internal_error!!");
DP_STATS_INC(soc, tx.wbm_internal_error[WBM_INT_ERROR_ALL], 1);
if (HAL_TX_COMP_RELEASE_SOURCE_REO ==
@@ -3546,10 +3541,11 @@
hal_tx_comp_get_buffer_type(
tx_comp_hal_desc));
- continue;
} 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 */
diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h
index d427ce6..8e41285 100644
--- a/dp/wifi3.0/dp_types.h
+++ b/dp/wifi3.0/dp_types.h
@@ -704,6 +704,8 @@
uint32_t invalid_release_source;
/* tx completion wbm_internal_error */
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 */
uint32_t tx_comp_loop_pkt_limit_hit;
/* Head pointer Out of sync at the end of dp_tx_comp_handler */