From 1b42e8d4cb2fcdc2f4420520aa74870d48babbfe Mon Sep 17 00:00:00 2001 From: gaurank kathpalia Date: Fri, 15 Dec 2017 15:44:06 +0530 Subject: [PATCH] qcacld-3.0: Fix SAP replying to BC probe request in hiddenssid The SAP configured in hidden ssid mode sends probe response to BC probe requests in hidden ssid mode after force SCC. In wma_set_channel, req.ssidhidden is not set by the host which in turn sets the param->flags last bit to 0, and the firmware receives these flags and sends the probe responses.In the wma_vdev_start api, the host sets the flags based upon the req.ssidhidden received from wma_set_channel only in vdev start case , and not in vdev restart case. Fix is to set the value of req.ssidhidden in wma_set_channel and to set the hidden ssid flag in both vdev start and vdev restart case. Change-Id: I988d8d64b06128a37824c7d31d4407247ba46dce CRs-Fixed: 2142430 --- core/wma/src/wma_dev_if.c | 8 ++++---- core/wma/src/wma_scan_roam.c | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index e0a922a3f860..e55cf5dac23b 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -2477,15 +2477,15 @@ QDF_STATUS wma_vdev_start(tp_wma_handle wma, temp_ssid_len); } - params.hidden_ssid = req->hidden_ssid; params.pmf_enabled = req->pmf_enabled; - if (req->hidden_ssid) - temp_flags |= WMI_UNIFIED_VDEV_START_HIDDEN_SSID; - if (req->pmf_enabled) temp_flags |= WMI_UNIFIED_VDEV_START_PMF_ENABLED; } + params.hidden_ssid = req->hidden_ssid; + if (req->hidden_ssid) + temp_flags |= WMI_UNIFIED_VDEV_START_HIDDEN_SSID; + params.num_noa_descriptors = 0; params.preferred_rx_streams = req->preferred_rx_streams; params.preferred_tx_streams = req->preferred_tx_streams; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index fee34292c590..5aed2ec128e1 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -3482,8 +3482,10 @@ void wma_set_channel(tp_wma_handle wma, tpSwitchChannelParams params) * true */ if ((wma_is_vdev_in_ap_mode(wma, req.vdev_id) == true) || - (params->restart_on_chan_switch == true)) + (params->restart_on_chan_switch == true)) { wma->interfaces[req.vdev_id].is_channel_switch = true; + req.hidden_ssid = intr[vdev_id].vdev_restart_params.ssidHidden; + } if (params->restart_on_chan_switch == true && wma->interfaces[req.vdev_id].beacon_filter_enabled)