mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
qcacld-3.0: Initialize PMF timer in create session
Initialize PMF comeback timer in PE create session. Currenlty PMF comeback timer is initialized in join request and destroyed in delete session. In offload cases, PE session is created without join request resulting in destruction of timer which was not initialized. Add timer initialization in pe_create_session. Change-Id: I3dba6713b2bf64cc69f0f2d8322293ff763c0989 CRs-Fixed: 948924
This commit is contained in:
parent
37d3aa2c93
commit
48de7dedc8
2 changed files with 15 additions and 21 deletions
|
|
@ -1829,26 +1829,10 @@ __lim_process_sme_join_req(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
|
|||
|
||||
/* Record if management frames need to be protected */
|
||||
#ifdef WLAN_FEATURE_11W
|
||||
if (eSIR_ED_AES_128_CMAC == sme_join_req->MgmtEncryptionType) {
|
||||
CDF_STATUS cdf_status;
|
||||
if (eSIR_ED_AES_128_CMAC == sme_join_req->MgmtEncryptionType)
|
||||
session->limRmfEnabled = 1;
|
||||
session->pmfComebackTimerInfo.pMac = mac_ctx;
|
||||
session->pmfComebackTimerInfo.sessionID =
|
||||
session_id;
|
||||
cdf_status = cdf_mc_timer_init(
|
||||
&session->pmfComebackTimer,
|
||||
CDF_TIMER_TYPE_SW,
|
||||
lim_pmf_comeback_timer_callback,
|
||||
(void *)&session->pmfComebackTimerInfo);
|
||||
if (CDF_STATUS_SUCCESS != cdf_status) {
|
||||
lim_log(mac_ctx, LOGP,
|
||||
FL("cannot init pmf comeback timer."));
|
||||
ret_code = eSIR_LOGP_EXCEPTION;
|
||||
goto end;
|
||||
}
|
||||
} else {
|
||||
else
|
||||
session->limRmfEnabled = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM
|
||||
|
|
|
|||
|
|
@ -384,6 +384,15 @@ pe_create_session(tpAniSirGlobal pMac, uint8_t *bssid, uint8_t *sessionId,
|
|||
CDF_TRACE(CDF_MODULE_ID_PE, CDF_TRACE_LEVEL_ERROR,
|
||||
FL("cannot create or start protectionFieldsResetTimer\n"));
|
||||
}
|
||||
|
||||
session_ptr->pmfComebackTimerInfo.pMac = pMac;
|
||||
session_ptr->pmfComebackTimerInfo.sessionID = *sessionId;
|
||||
status = cdf_mc_timer_init(&session_ptr->pmfComebackTimer,
|
||||
CDF_TIMER_TYPE_SW, lim_pmf_comeback_timer_callback,
|
||||
(void *)&session_ptr->pmfComebackTimerInfo);
|
||||
if (!CDF_IS_STATUS_SUCCESS(status))
|
||||
lim_log(pMac, LOGE, FL("cannot init pmf comeback timer."));
|
||||
|
||||
return &pMac->lim.gpSession[i];
|
||||
}
|
||||
|
||||
|
|
@ -665,9 +674,10 @@ void pe_delete_session(tpAniSirGlobal mac_ctx, tpPESession session)
|
|||
session->addIeParams.probeRespBCNDataLen = 0;
|
||||
}
|
||||
#ifdef WLAN_FEATURE_11W
|
||||
/* if PMF connection */
|
||||
if (session->limRmfEnabled)
|
||||
cdf_mc_timer_destroy(&session->pmfComebackTimer);
|
||||
if (CDF_TIMER_STATE_RUNNING ==
|
||||
cdf_mc_timer_get_current_state(&session->pmfComebackTimer))
|
||||
cdf_mc_timer_stop(&session->pmfComebackTimer);
|
||||
cdf_mc_timer_destroy(&session->pmfComebackTimer);
|
||||
#endif
|
||||
session->valid = false;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue