浏览代码

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 年之前
父节点
当前提交
0e5b1eb66b
共有 1 个文件被更改,包括 8 次插入0 次删除
  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->