diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c index 3c434f520fc1..34c07a319acf 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c @@ -59,10 +59,7 @@ static void lim_process_mlm_set_keys_req(tpAniSirGlobal, uint32_t *); /* MLM Timeout event handler templates */ static void lim_process_periodic_probe_req_timer(tpAniSirGlobal mac_ctx); -static void lim_process_join_failure_timeout(tpAniSirGlobal); -static void lim_process_auth_failure_timeout(tpAniSirGlobal); static void lim_process_auth_rsp_timeout(tpAniSirGlobal, uint32_t); -static void lim_process_assoc_failure_timeout(tpAniSirGlobal, uint32_t); static void lim_process_periodic_join_probe_req_timer(tpAniSirGlobal); static void lim_process_auth_retry_timer(tpAniSirGlobal); @@ -2150,17 +2147,7 @@ static void lim_process_periodic_probe_req_timer(tpAniSirGlobal mac_ctx) } } -/** - * lim_process_join_failure_timeout() - This function is called to process - * JoinFailureTimeout - * - * @mac_ctx: Pointer to Global MAC structure - * - * This function is called to process JoinFailureTimeout - * - * @Return None - */ -static void lim_process_join_failure_timeout(tpAniSirGlobal mac_ctx) +void lim_process_join_failure_timeout(tpAniSirGlobal mac_ctx) { tLimMlmJoinCnf mlm_join_cnf; uint32_t len; @@ -2325,17 +2312,7 @@ static void lim_process_auth_retry_timer(tpAniSirGlobal mac_ctx) return; } /*** lim_process_auth_retry_timer() ***/ -/** - * lim_process_auth_failure_timeout() - This function is called to process Min - * Channel Timeout during channel scan. - * - * @mac_ctx: Pointer to Global MAC structure - * - * This function is called to process Min Channel Timeout during channel scan. - * - * @Return: None - */ -static void lim_process_auth_failure_timeout(tpAniSirGlobal mac_ctx) +void lim_process_auth_failure_timeout(tpAniSirGlobal mac_ctx) { /* fetch the sessionEntry based on the sessionId */ tpPESession session; @@ -2450,18 +2427,8 @@ lim_process_auth_rsp_timeout(tpAniSirGlobal mac_ctx, uint32_t auth_idx) } } -/** - * lim_process_assoc_failure_timeout() - This function is called to process Min - * Channel Timeout during channel scan. - * - * @mac_ctx Pointer to Global MAC structure - * - * This function is called to process Min Channel Timeout during channel scan. - * - * @Return: None - */ -static void -lim_process_assoc_failure_timeout(tpAniSirGlobal mac_ctx, uint32_t msg_type) +void lim_process_assoc_failure_timeout(tpAniSirGlobal mac_ctx, + uint32_t msg_type) { tLimMlmAssocCnf mlm_assoc_cnf; diff --git a/core/mac/src/pe/lim/lim_types.h b/core/mac/src/pe/lim/lim_types.h index d31d90be901f..6998137891fe 100644 --- a/core/mac/src/pe/lim/lim_types.h +++ b/core/mac/src/pe/lim/lim_types.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -983,4 +983,42 @@ enum { QDF_STATUS lim_send_addba_response_frame(tpAniSirGlobal mac_ctx, tSirMacAddr peer_mac, uint16_t tid, tpPESession session); + +/** + * lim_process_join_failure_timeout() - This function is called to process + * JoinFailureTimeout + * + * @mac_ctx: Pointer to Global MAC structure + * + * This function is called to process JoinFailureTimeout + * + * @Return None + */ +void lim_process_join_failure_timeout(tpAniSirGlobal mac_ctx); + +/** + * lim_process_auth_failure_timeout() - This function is called to process Min + * Channel Timeout during channel scan. + * + * @mac_ctx: Pointer to Global MAC structure + * + * This function is called to process Min Channel Timeout during channel scan. + * + * @Return: None + */ +void lim_process_auth_failure_timeout(tpAniSirGlobal mac_ctx); + +/** + * lim_process_assoc_failure_timeout() - This function is called to process Min + * Channel Timeout during channel scan. + * + * @mac_ctx: Pointer to Global MAC structure + * @msg_type: Assoc or reassoc + * + * This function is called to process Min Channel Timeout during channel scan. + * + * @Return: None + */ +void lim_process_assoc_failure_timeout(tpAniSirGlobal mac_ctx, + uint32_t msg_type); #endif /* __LIM_TYPES_H */ diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index 7b572b7c135e..3ee189d9adb6 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -562,6 +562,11 @@ void lim_deactivate_timers(tpAniSirGlobal mac_ctx) /* Deactivate addts response timer. */ tx_timer_deactivate(&lim_timer->gLimAddtsRspTimer); + if (tx_timer_running(&lim_timer->gLimJoinFailureTimer)) { + pe_err("Join failure timer running call the timeout API"); + /* Cleanup as if join timer expired */ + lim_process_join_failure_timeout(mac_ctx); + } /* Deactivate Join failure timer. */ tx_timer_deactivate(&lim_timer->gLimJoinFailureTimer); @@ -572,9 +577,19 @@ void lim_deactivate_timers(tpAniSirGlobal mac_ctx) tx_timer_deactivate (&lim_timer->g_lim_periodic_auth_retry_timer); + if (tx_timer_running(&lim_timer->gLimAssocFailureTimer)) { + pe_err("Assoc failure timer running call the timeout API"); + /* Cleanup as if assoc timer expired */ + lim_process_assoc_failure_timeout(mac_ctx, LIM_ASSOC); + } /* Deactivate Association failure timer. */ tx_timer_deactivate(&lim_timer->gLimAssocFailureTimer); + if (tx_timer_running(&mac_ctx->lim.limTimers.gLimAuthFailureTimer)) { + pe_err("Auth failure timer running call the timeout API"); + /* Cleanup as if auth timer expired */ + lim_process_auth_failure_timeout(mac_ctx); + } /* Deactivate Authentication failure timer. */ tx_timer_deactivate(&lim_timer->gLimAuthFailureTimer);