From b6a951a21d80a0fda692f160c25c6b6fc3c97a6f Mon Sep 17 00:00:00 2001 From: Naveen Rawat Date: Tue, 21 Jun 2016 15:02:37 -0700 Subject: [PATCH] qcacld-3.0: Add check for NDI role in __lim_fresh_scan_reqd This is qcacld-2.0 to qcacld-3.0 propagation Add NDI role check in __lim_fresh_scan_reqd to allow request for fresh scan. Change-Id: Icea6228c6491d8b7d0588a699fe7f16d0dd0d3f1 CRs-Fixed: 1030380 --- .../src/pe/lim/lim_process_sme_req_messages.c | 54 +++++++++++-------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index aaae3253ca68..fdbdcc059636 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -360,32 +360,44 @@ __lim_fresh_scan_reqd(tpAniSirGlobal mac_ctx, uint8_t return_fresh_results) } for (i = 0; i < mac_ctx->lim.maxBssId; i++) { + + if (mac_ctx->lim.gpSession[i].valid == false) + continue; + lim_log(mac_ctx, LOG1, FL("session %d, bsstype %d, limSystemRole %d, limSmeState %d"), i, mac_ctx->lim.gpSession[i].bssType, mac_ctx->lim.gpSession[i].limSystemRole, mac_ctx->lim.gpSession[i].limSmeState); - if (mac_ctx->lim.gpSession[i].valid == true) { - if (!((((mac_ctx->lim.gpSession[i].bssType == - eSIR_INFRASTRUCTURE_MODE)) && - (mac_ctx->lim.gpSession[i].limSmeState == - eLIM_SME_LINK_EST_STATE)) || - (((mac_ctx->lim.gpSession[i].bssType == - eSIR_IBSS_MODE)) && - (mac_ctx->lim.gpSession[i].limSmeState == - eLIM_SME_NORMAL_STATE)) || - ((((mac_ctx->lim.gpSession[i].bssType == - eSIR_INFRA_AP_MODE) && - (mac_ctx->lim.gpSession[i].pePersona == - QDF_P2P_GO_MODE)) || - (mac_ctx->lim.gpSession[i].limSystemRole == - eLIM_AP_ROLE)) && - (mac_ctx->lim.gpSession[i].limSmeState == - eLIM_SME_NORMAL_STATE)))) { - valid_state = false; - break; - } - } + + if (mac_ctx->lim.gpSession[i].bssType == eSIR_NDI_MODE) + continue; + + if (mac_ctx->lim.gpSession[i].bssType == + eSIR_INFRASTRUCTURE_MODE && + mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_LINK_EST_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].bssType == eSIR_IBSS_MODE && + mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].bssType == eSIR_INFRA_AP_MODE && + mac_ctx->lim.gpSession[i].pePersona == + QDF_P2P_GO_MODE && + mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + if (mac_ctx->lim.gpSession[i].limSystemRole == eLIM_AP_ROLE && + mac_ctx->lim.gpSession[i].limSmeState == + eLIM_SME_NORMAL_STATE) + continue; + + valid_state = false; + break; } lim_log(mac_ctx, LOG1, FL("valid_state: %d"), valid_state);