Merge "qcacld-3.0: Fix pmfComebackTimer during roaming" into wlan-cld3.driver.lnx.1.1-dev

This commit is contained in:
Service qcabuildsw 2016-09-20 17:45:12 -07:00 • committed by Gerrit - the friendly Code Review server
commit 94e8ed4d94
2 changed files with 39 additions and 2 deletions

View file

@ -493,6 +493,7 @@ void lim_fill_ft_session(tpAniSirGlobal pMac,
tSchBeaconStruct *pBeaconStruct;
uint32_t selfDot11Mode;
ePhyChanBondState cbEnabledMode;
QDF_STATUS status;
pBeaconStruct = qdf_mem_malloc(sizeof(tSchBeaconStruct));
if (NULL == pBeaconStruct) {
@ -678,6 +679,19 @@ void lim_fill_ft_session(tpAniSirGlobal pMac,
pftSessionEntry->encryptType = psessionEntry->encryptType;
#ifdef WLAN_FEATURE_11W
pftSessionEntry->limRmfEnabled = psessionEntry->limRmfEnabled;
if (pftSessionEntry->limRmfEnabled) {
pftSessionEntry->pmfComebackTimerInfo.pMac = pMac;
pftSessionEntry->pmfComebackTimerInfo.sessionID =
psessionEntry->smeSessionId;
status = qdf_mc_timer_init(&pftSessionEntry->pmfComebackTimer,
QDF_TIMER_TYPE_SW, lim_pmf_comeback_timer_callback,
(void *)&pftSessionEntry->pmfComebackTimerInfo);
if (!QDF_IS_STATUS_SUCCESS(status))
lim_log(pMac, LOGE,
FL("cannot init pmf comeback timer."));
}
#endif
if ((pftSessionEntry->limRFBand == SIR_BAND_2_4_GHZ) &&
(pftSessionEntry->htSupportedChannelWidthSet ==

View file

@ -810,11 +810,34 @@ lim_process_assoc_rsp_frame(tpAniSirGlobal mac_ctx,
timeout_value)) {
lim_log(mac_ctx, LOGE,
FL("Failed to start comeback timer."));
assoc_cnf.resultCode = eSIR_SME_ASSOC_REFUSED;
assoc_cnf.protStatusCode =
eSIR_MAC_UNSPEC_FAILURE_STATUS;
/*
* Delete Pre-auth context for the
* associated BSS
*/
if (lim_search_pre_auth_list(mac_ctx, hdr->sa))
lim_delete_pre_auth_node(mac_ctx,
hdr->sa);
goto assocReject;
}
} else {
lim_log(mac_ctx, LOGW,
FL("ASSOC resp with try again event recvd. "
"But try again time interval IE is wrong."));
FL("ASSOC resp with try again event recvd, but try again time interval IE is wrong"));
assoc_cnf.resultCode = eSIR_SME_ASSOC_REFUSED;
assoc_cnf.protStatusCode =
eSIR_MAC_UNSPEC_FAILURE_STATUS;
/* Delete Pre-auth context for the associated BSS */
if (lim_search_pre_auth_list(mac_ctx, hdr->sa))
lim_delete_pre_auth_node(mac_ctx, hdr->sa);
goto assocReject;
}
qdf_mem_free(beacon);
qdf_mem_free(assoc_rsp);