mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
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
This commit is contained in:
parent
0fef708275
commit
748d8a27aa
4 changed files with 34 additions and 27 deletions
|
|
@ -70,27 +70,26 @@ 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);
|
||||
|
||||
/* Deactivate and delete FT Preauth response timer */
|
||||
tx_timer_deactivate(&lim_timer->gLimFTPreAuthRspTimer);
|
||||
/* 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 Reassociation failure timer. */
|
||||
tx_timer_deactivate(&lim_timer->gLimReassocFailureTimer);
|
||||
/* Deactivate FT Preauth response timer */
|
||||
tx_timer_deactivate(&lim_timer->gLimFTPreAuthRspTimer);
|
||||
}
|
||||
|
||||
/**
|
||||
* lim_deactivate_and_change_timer_host_roam() - Change timers in host roaming
|
||||
* @mac_ctx: Pointer to Global MAC structure
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -586,11 +586,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);
|
||||
|
|
@ -647,12 +643,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);
|
||||
|
||||
|
|
@ -684,9 +674,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);
|
||||
|
||||
|
|
|
|||
|
|
@ -696,7 +696,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
|
||||
|
|
@ -706,6 +724,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)
|
||||
{}
|
||||
|
|
|
|||
Loading…
Reference in a new issue