mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 08:07:32 -04:00
qcacld-3.0: Validate freq against regulatory list
When CSR issues a start BSS message, it validates the requested start freq against the internal CSR channel list. There could be a scenario where this list is not updated and the validation fails. Check this freq against the regulatory channel list instead. Change-Id: I56b29fa6249a9245bb968c95c14e730b976f0f8d CRs-fixed: 2884695
This commit is contained in:
parent
3edd04f7eb
commit
7b6d8910f2
2 changed files with 2 additions and 25 deletions
|
|
@ -179,7 +179,6 @@ void csr_roam_process_get_disconnect_stats_command(struct mac_context *mac,
|
|||
void csr_reinit_roam_cmd(struct mac_context *mac, tSmeCmd *pCommand);
|
||||
void csr_reinit_wm_status_change_cmd(struct mac_context *mac,
|
||||
tSmeCmd *pCommand);
|
||||
QDF_STATUS csr_is_valid_channel(struct mac_context *mac, uint32_t freq);
|
||||
|
||||
QDF_STATUS sme_acquire_global_lock(struct sme_context *sme);
|
||||
QDF_STATUS sme_release_global_lock(struct sme_context *sme);
|
||||
|
|
|
|||
|
|
@ -2808,28 +2808,6 @@ void csr_prune_channel_list_for_mode(struct mac_context *mac_ctx,
|
|||
}
|
||||
|
||||
#define INFRA_AP_DEFAULT_CHAN_FREQ 2437
|
||||
QDF_STATUS csr_is_valid_channel(struct mac_context *mac, uint32_t freq)
|
||||
{
|
||||
uint8_t index = 0;
|
||||
QDF_STATUS status = QDF_STATUS_E_NOSUPPORT;
|
||||
|
||||
/* regulatory check */
|
||||
for (index = 0; index < mac->scan.base_channels.numChannels;
|
||||
index++) {
|
||||
if (mac->scan.base_channels.channel_freq_list[index] ==
|
||||
freq){
|
||||
status = QDF_STATUS_SUCCESS;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (QDF_STATUS_SUCCESS != status) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||
FL("freq %d is not available"), freq);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS csr_get_channel_and_power_list(struct mac_context *mac)
|
||||
{
|
||||
|
|
@ -13698,8 +13676,8 @@ QDF_STATUS csr_roam_issue_start_bss(struct mac_context *mac, uint32_t sessionId,
|
|||
pParam->ApUapsdEnable = pProfile->ApUapsdEnable;
|
||||
pParam->ssidHidden = pProfile->SSIDs.SSIDList[0].ssidHidden;
|
||||
if (CSR_IS_INFRA_AP(pProfile) && (pParam->operation_chan_freq != 0)) {
|
||||
if (csr_is_valid_channel(mac, pParam->operation_chan_freq) !=
|
||||
QDF_STATUS_SUCCESS) {
|
||||
if (!wlan_reg_is_freq_present_in_cur_chan_list(mac->pdev,
|
||||
pParam->operation_chan_freq)) {
|
||||
pParam->operation_chan_freq = INFRA_AP_DEFAULT_CHAN_FREQ;
|
||||
pParam->ch_params.ch_width = CH_WIDTH_20MHZ;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue