Browse Source

qcacld-3.0: Ignore NUD event when wlan is suspended

NUD_FAILURE event is processed after wlan bus suspend is
successful. This results in disconnect active command, which
is triggered as part of honoring NUD failure, to timeout since
WMI commands to FW will be dropped at WMI level as target is
suspended.

Fix is to ignore NUD events received when wlan is suspended.

Change-Id: If348e2043013dcab9bd16f1cfa3f8de2f81db4dc
CRs-Fixed: 3016230
Yeshwanth Sriram Guntuka 3 years ago
parent
commit
793341dd2c
1 changed files with 10 additions and 0 deletions
  1. 10 0
      core/hdd/src/wlan_hdd_nud_tracking.c

+ 10 - 0
core/hdd/src/wlan_hdd_nud_tracking.c

@@ -317,6 +317,11 @@ static void __hdd_nud_failure_work(struct hdd_adapter *adapter)
 		return;
 	}
 
+	if (hdd_ctx->hdd_wlan_suspended) {
+		hdd_debug("wlan is suspended, ignore NUD failure event");
+		return;
+	}
+
 	if (soc && cdp_cfg_get(soc, cfg_dp_enable_data_stall)) {
 		hdd_dp_err("Data stall due to NUD failure");
 		cdp_post_data_stall_event
@@ -457,6 +462,11 @@ static void hdd_nud_filter_netevent(struct neighbour *neigh)
 				  (struct qdf_mac_addr *)&neigh->ha[0]))
 		return;
 
+	if (hdd_ctx->hdd_wlan_suspended) {
+		hdd_debug("wlan is suspended, ignore NUD event");
+		return;
+	}
+
 	switch (neigh->nud_state) {
 	case NUD_PROBE:
 	case NUD_INCOMPLETE: