From 24db1ed70b31a07c94bc46d87c5467d5c409f459 Mon Sep 17 00:00:00 2001 From: Govind Singh Date: Fri, 18 Dec 2015 15:54:59 +0530 Subject: [PATCH] qcacld-3.0: Fix build failure in cds module pRoamInfo is not initialized in cds_force_sap_on_scc function. This is resulting in build failure when FEATURE_WLAN_FORCE_SAP_SCC flag is enabled. Modify cds_force_sap_on_scc function to fix the same. CRs-Fixed: 953618 Change-Id: I136d33f108dab19c236c7bf1aadf7608c0673baf --- core/cds/inc/cds_concurrency.h | 6 ++++-- core/cds/src/cds_concurrency.c | 8 +++++--- core/hdd/src/wlan_hdd_assoc.c | 8 +++++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/core/cds/inc/cds_concurrency.h b/core/cds/inc/cds_concurrency.h index f7e37d5e8afc..c5c30e2389fd 100644 --- a/core/cds/inc/cds_concurrency.h +++ b/core/cds/inc/cds_concurrency.h @@ -499,9 +499,11 @@ bool cds_check_for_session_conc(uint8_t session_id, uint8_t channel); CDF_STATUS cds_handle_conc_multiport(uint8_t session_id, uint8_t channel); #ifdef FEATURE_WLAN_FORCE_SAP_SCC -void cds_force_sap_on_scc(eCsrRoamResult roam_result); +void cds_force_sap_on_scc(eCsrRoamResult roam_result, + uint8_t channel_id); #else -static inline void cds_force_sap_on_scc(eCsrRoamResult roam_result) +static inline void cds_force_sap_on_scc(eCsrRoamResult roam_result, + uint8_t channel_id) { } diff --git a/core/cds/src/cds_concurrency.c b/core/cds/src/cds_concurrency.c index 9242863e829c..f7bf7f0e64cf 100644 --- a/core/cds/src/cds_concurrency.c +++ b/core/cds/src/cds_concurrency.c @@ -6556,13 +6556,15 @@ void cds_restart_softap(hdd_adapter_t *pHostapdAdapter) /** * cds_force_sap_on_scc() - Force SAP on SCC * @roam_result: Roam result + * @channel_id: STA channel id * * Restarts SAP on SCC if its operating channel is different from that of the * STA-AP interface * * Return: None */ -void cds_force_sap_on_scc(eCsrRoamResult roam_result) +void cds_force_sap_on_scc(eCsrRoamResult roam_result, + uint8_t channel_id) { hdd_adapter_t *hostapd_adapter; hdd_context_t *hdd_ctx; @@ -6584,10 +6586,10 @@ void cds_force_sap_on_scc(eCsrRoamResult roam_result) * from AP channel. */ if (hostapd_adapter->sessionCtx.ap.operatingChannel != - pRoamInfo->pBssDesc->channelId) { + channel_id) { cds_err("Restart SAP: SAP channel-%d, STA channel-%d", hostapd_adapter->sessionCtx.ap.operatingChannel, - pRoamInfo->pBssDesc->channelId); + channel_id); cds_restart_softap(hostapd_adapter); } } diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index 6d124107945e..d9808e883fcb 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -2333,7 +2333,13 @@ defined(FEATURE_WLAN_LFR) roamResult, pHddStaCtx)) return CDF_STATUS_E_FAILURE; - cds_force_sap_on_scc(roamResult); + if (NULL != pRoamInfo && NULL != pRoamInfo->pBssDesc) { + cds_force_sap_on_scc(roamResult, + pRoamInfo->pBssDesc->channelId); + } else { + hdd_err("pRoamInfo profile is not set properly"); + return CDF_STATUS_E_FAILURE; + } return CDF_STATUS_SUCCESS; }