Browse Source

qcacld-3.0: Post ack timeout lim message before deactivating timer

In STA mode, deauth frame is sent to AP due to disconnect
triggered as part of hdd_stop. Host did not receive deauth
tx complete event and FW_DOWN uevent is received after this.
As part of pe shutdown notifier cb, lim timers are deactivated.
This will result in cleanup failure and disconnect timeout.

Fix is to post SIR_LIM_DEAUTH_ACK_TIMEOUT message to lim
before deactivating the timer.

Change-Id: I75d8a8c861e89bb34526a0af92c446139a5bec1c
CRs-Fixed: 2344575
Yeshwanth Sriram Guntuka 6 years ago
parent
commit
0e5b1eb66b
1 changed files with 8 additions and 0 deletions
  1. 8 0
      core/mac/src/pe/lim/lim_utils.c

+ 8 - 0
core/mac/src/pe/lim/lim_utils.c

@@ -604,8 +604,16 @@ void lim_deactivate_timers(tpAniSirGlobal mac_ctx)
 	tx_timer_deactivate(&lim_timer->gLimUpdateOlbcCacheTimer);
 	tx_timer_deactivate(&lim_timer->gLimPreAuthClnupTimer);
 
+	if (tx_timer_running(&lim_timer->gLimDisassocAckTimer)) {
+		pe_err("Disassoc timer running call the timeout API");
+		lim_timer_handler(mac_ctx, SIR_LIM_DISASSOC_ACK_TIMEOUT);
+	}
 	tx_timer_deactivate(&lim_timer->gLimDisassocAckTimer);
 
+	if (tx_timer_running(&lim_timer->gLimDeauthAckTimer)) {
+		pe_err("Deauth timer running call the timeout API");
+		lim_timer_handler(mac_ctx, SIR_LIM_DEAUTH_ACK_TIMEOUT);
+	}
 	tx_timer_deactivate(&lim_timer->gLimDeauthAckTimer);
 
 	tx_timer_deactivate(&lim_timer->