summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaveen Rawat <naveenrawat@codeaurora.org>2016-06-15 11:07:24 -0700
committerNandini Suresh <snandini@codeaurora.org>2016-07-14 18:50:50 -0700
commit696a930c25f7acbe5d14e68404b8e16a79ba30f8 (patch)
treeaecc1476aa33b611909af8abd5ab1acfa36d3cb3
parenta395d25d534f5cd6818cfbc8faf6ea465aa899f2 (diff)
qcacld-3.0: Fix start BSS failure
In function csr_roam_join_handle_profile, add NULL pointer check for "result" after call to csr_roam_select_bss rather than before csr_roam_join_handle_profile, since it is called for BSS role as well. Change-Id: I800891fd66d5c851537968515e43eadbe38a2ae8 CRs-Fixed: 1038237
-rw-r--r--core/sme/src/csr/csr_api_roam.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index dadf022d33f8..a6e6cb86358a 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -5073,7 +5073,7 @@ static void csr_roam_join_handle_profile(tpAniSirGlobal mac_ctx,
else
ies_local = scan_result->Result.pvIes;
- if (scan_result && !ies_local &&
+ if (scan_result && !ies_local && result &&
(!QDF_IS_STATUS_SUCCESS(
csr_get_parsed_bss_description_ies(
mac_ctx,
@@ -5083,20 +5083,22 @@ static void csr_roam_join_handle_profile(tpAniSirGlobal mac_ctx,
*roam_state = eCsrStopRoaming;
return;
}
- roam_info_ptr->pBssDesc = &result->BssDescriptor;
+ if (result)
+ roam_info_ptr->pBssDesc = &result->BssDescriptor;
cmd->u.roamCmd.pLastRoamBss = roam_info_ptr->pBssDesc;
/* dont put uapsd_mask if BSS doesn't support uAPSD */
if (scan_result && cmd->u.roamCmd.roamProfile.uapsd_mask
&& CSR_IS_QOS_BSS(ies_local)
&& CSR_IS_UAPSD_BSS(ies_local)) {
#ifndef WLAN_MDM_CODE_REDUCTION_OPT
- acm_mask = sme_qos_get_acm_mask(mac_ctx,
+ if (result)
+ acm_mask = sme_qos_get_acm_mask(mac_ctx,
&result->BssDescriptor, ies_local);
#endif /* WLAN_MDM_CODE_REDUCTION_OPT */
} else {
cmd->u.roamCmd.roamProfile.uapsd_mask = 0;
}
- if (ies_local && !result->pvIes)
+ if (ies_local && result && !result->pvIes)
qdf_mem_free(ies_local);
roam_info_ptr->pProfile = profile;
session->bRefAssocStartCnt++;
@@ -5267,14 +5269,8 @@ static eCsrJoinState csr_roam_join_next_bss(tpAniSirGlobal mac_ctx,
roam_info_ptr = &roam_info;
roam_info_ptr->u.pConnectedProfile = &session->connectedProfile;
- /*
- * result will be null if passed pRoamBssEntry is NULL, which
- * indicates we are done with all BSSs in list.
- */
- if (result != NULL)
- csr_roam_join_handle_profile(mac_ctx, session_id, cmd,
- roam_info_ptr, &roam_state,
- result, scan_result);
+ csr_roam_join_handle_profile(mac_ctx, session_id, cmd, roam_info_ptr,
+ &roam_state, result, scan_result);
end:
if ((eCsrStopRoaming == roam_state) && CSR_IS_INFRASTRUCTURE(profile) &&
(session->bRefAssocStartCnt > 0)) {