diff options
| author | Abhishek Singh <absingh@codeaurora.org> | 2017-08-21 15:10:05 +0530 |
|---|---|---|
| committer | Abhishek Singh <absingh@codeaurora.org> | 2017-08-31 14:24:06 +0530 |
| commit | ad07fe335ef03e550af0406b3612e2ce591c03ab (patch) | |
| tree | 1cedc7634a87e24897920464a6d750f6e9359456 | |
| parent | 4984bb302b29ce8064b8a7a3db3b115d7b7b728b (diff) | |
qcacld-3.0: Fix assert in qdf_mc_timer_stop for host roam timers
The host roam timers are deactivated and deleted in
lim_delete_timers_host_roam but again in lim_deactivate_timers
they are deactivated which results in assert.
Fix this by deactivating roam timers before they are destroyed.
Change-Id: I03f069edaf4361111dc5240fce2003c04c9c6509
CRs-Fixed: 2095265
| -rw-r--r-- | core/mac/src/pe/lim/lim_roam_timer_utils.c | 24 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_timer_utils.c | 3 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_utils.c | 16 | ||||
| -rw-r--r-- | core/mac/src/pe/lim/lim_utils.h | 19 |
4 files changed, 35 insertions, 27 deletions
diff --git a/core/mac/src/pe/lim/lim_roam_timer_utils.c b/core/mac/src/pe/lim/lim_roam_timer_utils.c index 3105f0cfeaad..65fae3ddfcb8 100644 --- a/core/mac/src/pe/lim/lim_roam_timer_utils.c +++ b/core/mac/src/pe/lim/lim_roam_timer_utils.c @@ -70,27 +70,27 @@ err_roam_timer: return TX_TIMER_ERROR; } -/** - * lim_delete_timers_host_roam() - Delete timers used in host based roaming - * @mac_ctx: Global MAC context - * - * Delete reassoc and preauth timers - * - * Return: none - */ void lim_delete_timers_host_roam(tpAniSirGlobal mac_ctx) { tLimTimers *lim_timer = &mac_ctx->lim.limTimers; - /* Deactivate and delete Reassociation failure timer. */ - tx_timer_deactivate(&lim_timer->gLimReassocFailureTimer); + /* Delete Reassociation failure timer. */ tx_timer_delete(&lim_timer->gLimReassocFailureTimer); + /* Delete FT Preauth response timer */ + tx_timer_delete(&lim_timer->gLimFTPreAuthRspTimer); +} + +void lim_deactivate_timers_host_roam(tpAniSirGlobal mac_ctx) +{ + tLimTimers *lim_timer = &mac_ctx->lim.limTimers; - /* Deactivate and delete FT Preauth response timer */ + /* Deactivate Reassociation failure timer. */ + tx_timer_deactivate(&lim_timer->gLimReassocFailureTimer); + /* Deactivate FT Preauth response timer */ tx_timer_deactivate(&lim_timer->gLimFTPreAuthRspTimer); - tx_timer_delete(&lim_timer->gLimFTPreAuthRspTimer); } + /** * lim_deactivate_and_change_timer_host_roam() - Change timers in host roaming * @mac_ctx: Pointer to Global MAC structure diff --git a/core/mac/src/pe/lim/lim_timer_utils.c b/core/mac/src/pe/lim/lim_timer_utils.c index bd3f92b9fc0d..4d58b61d1c37 100644 --- a/core/mac/src/pe/lim/lim_timer_utils.c +++ b/core/mac/src/pe/lim/lim_timer_utils.c @@ -375,10 +375,10 @@ uint32_t lim_create_timers(tpAniSirGlobal pMac) return TX_SUCCESS; err_timer: + lim_delete_timers_host_roam(pMac); tx_timer_delete(&pMac->lim.limTimers.gLimDeauthAckTimer); tx_timer_delete(&pMac->lim.limTimers.gLimDisassocAckTimer); tx_timer_delete(&pMac->lim.limTimers.gLimRemainOnChannelTimer); - tx_timer_delete(&pMac->lim.limTimers.gLimFTPreAuthRspTimer); tx_timer_delete(&pMac->lim.limTimers.gLimUpdateOlbcCacheTimer); while (((int32_t)-- i) >= 0) { tx_timer_delete(&pMac->lim.limTimers.gpLimCnfWaitTimer[i]); @@ -386,7 +386,6 @@ err_timer: tx_timer_delete(&pMac->lim.limTimers.gLimProbeAfterHBTimer); tx_timer_delete(&pMac->lim.limTimers.gLimAuthFailureTimer); tx_timer_delete(&pMac->lim.limTimers.gLimAddtsRspTimer); - tx_timer_delete(&pMac->lim.limTimers.gLimReassocFailureTimer); tx_timer_delete(&pMac->lim.limTimers.open_sys_auth_timer); tx_timer_delete(&pMac->lim.limTimers.gLimAssocFailureTimer); tx_timer_delete(&pMac->lim.limTimers.gLimJoinFailureTimer); diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index 79eb0ad07a77..dab97526ee2c 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -582,11 +582,7 @@ void lim_deactivate_timers(tpAniSirGlobal mac_ctx) uint32_t n; tLimTimers *lim_timer = &mac_ctx->lim.limTimers; - /* Deactivate Reassociation failure timer. */ - tx_timer_deactivate(&lim_timer->gLimReassocFailureTimer); - - /* Deactivate FT Preauth response timer */ - tx_timer_deactivate(&lim_timer->gLimFTPreAuthRspTimer); + lim_deactivate_timers_host_roam(mac_ctx); /* Deactivate Periodic Probe channel timers. */ tx_timer_deactivate(&lim_timer->gLimPeriodicProbeReqTimer); @@ -642,12 +638,6 @@ void lim_deactivate_timers(tpAniSirGlobal mac_ctx) tx_timer_deactivate(&lim_timer->gLimDeauthAckTimer); - /* Deactivate Reassociation failure timer. */ - tx_timer_deactivate(&lim_timer->gLimReassocFailureTimer); - - /* Deactivate FT Preauth response timer */ - tx_timer_deactivate(&lim_timer->gLimFTPreAuthRspTimer); - tx_timer_deactivate(&lim_timer-> gLimP2pSingleShotNoaInsertTimer); @@ -679,9 +669,9 @@ void lim_cleanup_mlm(tpAniSirGlobal mac_ctx) if (mac_ctx->lim.gLimTimersCreated == 1) { lim_timer = &mac_ctx->lim.limTimers; - lim_delete_timers_host_roam(mac_ctx); - lim_deactivate_timers(mac_ctx); + + lim_delete_timers_host_roam(mac_ctx); /* Delete Periodic Probe channel timers. */ tx_timer_delete(&lim_timer->gLimPeriodicProbeReqTimer); diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h index 5c4f8b2fcc1c..c51a616f3283 100644 --- a/core/mac/src/pe/lim/lim_utils.h +++ b/core/mac/src/pe/lim/lim_utils.h @@ -701,7 +701,25 @@ void lim_update_obss_scanparams(tpPESession session, void lim_init_obss_params(tpAniSirGlobal mac_ctx, tpPESession session); #ifdef WLAN_FEATURE_HOST_ROAM uint32_t lim_create_timers_host_roam(tpAniSirGlobal mac_ctx); +/** + * lim_delete_timers_host_roam() - Delete timers used in host based roaming + * @mac_ctx: Global MAC context + * + * Delete reassoc and preauth timers + * + * Return: none + */ void lim_delete_timers_host_roam(tpAniSirGlobal mac_ctx); +/** + * lim_deactivate_timers_host_roam() - deactivate timers used in host based + * roaming + * @mac_ctx: Global MAC context + * + * Delete reassoc and preauth timers + * + * Return: none + */ +void lim_deactivate_timers_host_roam(tpAniSirGlobal mac_ctx); void lim_deactivate_and_change_timer_host_roam(tpAniSirGlobal mac_ctx, uint32_t timer_id); #else @@ -711,6 +729,7 @@ static inline uint32_t lim_create_timers_host_roam(tpAniSirGlobal mac_ctx) } static inline void lim_delete_timers_host_roam(tpAniSirGlobal mac_ctx) {} +static inline void lim_deactivate_timers_host_roam(tpAniSirGlobal mac_ctx) {} static inline void lim_deactivate_and_change_timer_host_roam( tpAniSirGlobal mac_ctx, uint32_t timer_id) {} |
