diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 5b6d9616533a..850ad3c913f7 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -7503,7 +7503,7 @@ QDF_STATUS sme_get_roam_scan_channel_list(mac_handle_t mac_handle, struct mac_context *mac = MAC_CONTEXT(mac_handle); tpCsrNeighborRoamControlInfo pNeighborRoamInfo = NULL; QDF_STATUS status = QDF_STATUS_SUCCESS; - tCsrChannelInfo *specific_chan_info; + tCsrChannelInfo *chan_info; if (sessionId >= WLAN_MAX_VDEVS) { QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR, @@ -7515,18 +7515,21 @@ QDF_STATUS sme_get_roam_scan_channel_list(mac_handle_t mac_handle, status = sme_acquire_global_lock(&mac->sme); if (!QDF_IS_STATUS_SUCCESS(status)) return status; - specific_chan_info = &pNeighborRoamInfo->cfgParams.specific_chan_info; - if (!specific_chan_info->freq_list) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_WARN, - FL("Roam Scan channel list is NOT yet initialized")); - *pNumChannels = 0; - sme_release_global_lock(&mac->sme); - return status; + + chan_info = &pNeighborRoamInfo->cfgParams.specific_chan_info; + if (!chan_info->numOfChannels) { + chan_info = &pNeighborRoamInfo->cfgParams.pref_chan_info; + if (!chan_info->numOfChannels) { + sme_err("Roam Scan channel list is NOT yet initialized"); + *pNumChannels = 0; + sme_release_global_lock(&mac->sme); + return status; + } } - *pNumChannels = specific_chan_info->numOfChannels; + *pNumChannels = chan_info->numOfChannels; for (i = 0; i < (*pNumChannels); i++) - freq_list[i] = specific_chan_info->freq_list[i]; + freq_list[i] = chan_info->freq_list[i]; freq_list[i] = '\0'; sme_release_global_lock(&mac->sme);