Просмотр исходного кода

qcacld-3.0: Rate limit IPA callback API error logs

Excessive wlan ipa call back error logs when driver is in
transition stat which may leads to watchdog timeout. So rate
limit the logs.

Change-Id: I1398ea67abde53d3a5f0b5ab7c7ea1dd8553e4cc
CRs-Fixed: 2379522
Sravan Kumar Kairam 6 лет назад
Родитель
Сommit
9cd68d0639
1 измененных файлов с 21 добавлено и 10 удалено
  1. 21 10
      components/ipa/core/src/wlan_ipa_core.c

+ 21 - 10
components/ipa/core/src/wlan_ipa_core.c

@@ -764,15 +764,24 @@ static void __wlan_ipa_w2i_cb(void *priv, qdf_ipa_dp_evt_type_t evt,
 	struct wlan_ipa_iface_context *iface_context;
 	uint8_t fw_desc;
 
-	if (qdf_is_module_state_transitioning()) {
-		ipa_err("Module transition in progress");
+	ipa_ctx = (struct wlan_ipa_priv *)priv;
+	if (!ipa_ctx) {
+		if (evt == IPA_RECEIVE) {
+			skb = (qdf_nbuf_t)data;
+			dev_kfree_skb_any(skb);
+		}
 		return;
 	}
 
-	ipa_ctx = (struct wlan_ipa_priv *)priv;
-
-	if (!ipa_ctx)
+	if (qdf_is_module_state_transitioning()) {
+		ipa_err_rl("Module transition in progress");
+		if (evt == IPA_RECEIVE) {
+			skb = (qdf_nbuf_t)data;
+			ipa_ctx->ipa_rx_internal_drop_count++;
+			dev_kfree_skb_any(skb);
+		}
 		return;
+	}
 
 	switch (evt) {
 	case IPA_RECEIVE:
@@ -876,15 +885,17 @@ static void __wlan_ipa_i2w_cb(void *priv, qdf_ipa_dp_evt_type_t evt,
 	qdf_nbuf_t skb;
 	struct wlan_ipa_pm_tx_cb *pm_tx_cb = NULL;
 
-	if (qdf_is_module_state_transitioning()) {
-		ipa_err("Module transition in progress");
-		return;
-	}
-
 	iface_context = (struct wlan_ipa_iface_context *)priv;
 	ipa_tx_desc = (qdf_ipa_rx_data_t *)data;
 	ipa_ctx = iface_context->ipa_ctx;
 
+	if (qdf_is_module_state_transitioning()) {
+		ipa_err_rl("Module transition in progress");
+		ipa_free_skb(ipa_tx_desc);
+		iface_context->stats.num_tx_drop++;
+		return;
+	}
+
 	if (evt != IPA_RECEIVE) {
 		ipa_err_rl("Event is not IPA_RECEIVE");
 		ipa_free_skb(ipa_tx_desc);