From 0e5b1eb66bf7e49fcc8936ec29f55ed7aef04d40 Mon Sep 17 00:00:00 2001 From: Yeshwanth Sriram Guntuka Date: Thu, 1 Nov 2018 14:25:40 +0530 Subject: [PATCH] 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 --- core/mac/src/pe/lim/lim_utils.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index e2bd81c5cf01..862a73fdaa70 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/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->