diff options
| -rw-r--r-- | core/mac/src/pe/lim/lim_api.c | 19 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 9 |
2 files changed, 22 insertions, 6 deletions
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c index 63d090034697..e6885d88c2f9 100644 --- a/core/mac/src/pe/lim/lim_api.c +++ b/core/mac/src/pe/lim/lim_api.c @@ -2026,8 +2026,8 @@ QDF_STATUS pe_roam_synch_callback(tpAniSirGlobal mac_ctx, curr_sta_ds->nss = local_nss; ft_session_ptr->limMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE; lim_init_tdls_data(mac_ctx, ft_session_ptr); - join_rsp_len = ft_session_ptr->RICDataLen + sizeof(tSirSmeJoinRsp) - - sizeof(uint8_t); + join_rsp_len = ft_session_ptr->RICDataLen + ft_session_ptr->tspecLen + + sizeof(tSirSmeJoinRsp) - sizeof(uint8_t); roam_sync_ind_ptr->join_rsp = qdf_mem_malloc(join_rsp_len); if (NULL == roam_sync_ind_ptr->join_rsp) { lim_log(mac_ctx, LOGE, FL("LFR3:mem alloc failed")); @@ -2038,8 +2038,8 @@ QDF_STATUS pe_roam_synch_callback(tpAniSirGlobal mac_ctx, return QDF_STATUS_E_NOMEM; } - lim_log(mac_ctx, LOG1, FL("Session RicLength = %d"), - ft_session_ptr->RICDataLen); + lim_log(mac_ctx, LOG1, FL("Session RicLength = %d tspecLen = %d"), + ft_session_ptr->RICDataLen, ft_session_ptr->tspecLen); if (ft_session_ptr->ricData != NULL) { roam_sync_ind_ptr->join_rsp->parsedRicRspLen = ft_session_ptr->RICDataLen; @@ -2050,6 +2050,17 @@ QDF_STATUS pe_roam_synch_callback(tpAniSirGlobal mac_ctx, ft_session_ptr->ricData = NULL; ft_session_ptr->RICDataLen = 0; } + if (ft_session_ptr->tspecIes != NULL) { + roam_sync_ind_ptr->join_rsp->tspecIeLen = + ft_session_ptr->tspecLen; + qdf_mem_copy(roam_sync_ind_ptr->join_rsp->frames + + roam_sync_ind_ptr->join_rsp->parsedRicRspLen, + ft_session_ptr->tspecIes, + roam_sync_ind_ptr->join_rsp->tspecIeLen); + qdf_mem_free(ft_session_ptr->tspecIes); + ft_session_ptr->tspecIes = NULL; + ft_session_ptr->tspecLen = 0; + } roam_sync_ind_ptr->join_rsp->vht_channel_width = ft_session_ptr->ch_width; roam_sync_ind_ptr->join_rsp->staId = curr_sta_ds->staIndex; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index f30f906243df..2e69c7b0f680 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -19925,9 +19925,12 @@ void csr_roam_synch_callback(tpAniSirGlobal mac_ctx, FL("LFR3:Clear Connected info")); csr_roam_free_connected_info(mac_ctx, &session->connectedInfo); - len = roam_synch_data->join_rsp->parsedRicRspLen; + len = roam_synch_data->join_rsp->parsedRicRspLen + + roam_synch_data->join_rsp->tspecIeLen; QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - FL("LFR3: RIC length - %d"), len); + FL("LFR3: RIC length - %d tspecLen %d"), + roam_synch_data->join_rsp->parsedRicRspLen, + roam_synch_data->join_rsp->tspecIeLen); if (len) { session->connectedInfo.pbFrames = qdf_mem_malloc(len); @@ -19936,6 +19939,8 @@ void csr_roam_synch_callback(tpAniSirGlobal mac_ctx, roam_synch_data->join_rsp->frames, len); session->connectedInfo.nRICRspLength = roam_synch_data->join_rsp->parsedRicRspLen; + session->connectedInfo.nTspecIeLength = + roam_synch_data->join_rsp->tspecIeLen; } } conn_profile->vht_channel_width = |
