summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCNSS_WLAN Service <cnssbldsw@qualcomm.com>2018-10-01 03:50:41 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-10-01 03:50:41 -0700
commit6841c7a3d69efd90f98b2f031f5569d395c1c95e (patch)
tree176733e264e8dc10a491d04d2504e253ffc49f48
parent64b75dde0dce4d4dbd79f0e9183ab2b37f5e4f82 (diff)
parent42c3490d7dae84e68bc1f7e3bdad17a8ee73a5ef (diff)
downloadwlan-6841c7a3d69efd90f98b2f031f5569d395c1c95e.tar.gz
Merge "wlan: Invoke LFR3 roaming on reception of prev_bssid in connect" into wlan-driver.lnx.1.0
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index c17fab251..c7b3e2e49 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -16948,8 +16948,8 @@ disconnected:
* @adapter: Pointer to the HDD adapter
* @req: Pointer to the structure cfg_connect_params receieved from user space
*
- * This function will start reassociation if bssid hint, channel hint and
- * previous bssid parameters are present in the connect request
+ * This function will start reassociation if prev_bssid is set and bssid/
+ * bssid_hint, channel/channel_hint parameters are present in connect request.
*
* Return: success if reassociation is happening
* Error code if reassociation is not permitted or not happening
@@ -16959,14 +16959,25 @@ static int wlan_hdd_reassoc_bssid_hint(hdd_adapter_t *adapter,
struct cfg80211_connect_params *req)
{
int status = -EPERM;
- if (req->bssid_hint && req->channel_hint && req->prev_bssid) {
+ const uint8_t *bssid = NULL;
+ uint16_t channel = 0;
+
+ if (req->bssid)
+ bssid = req->bssid;
+ else if (req->bssid_hint)
+ bssid = req->bssid_hint;
+
+ if (req->channel)
+ channel = req->channel->hw_value;
+ else if (req->channel_hint)
+ channel = req->channel_hint->hw_value;
+
+ if (bssid && channel && req->prev_bssid) {
hddLog(VOS_TRACE_LEVEL_INFO,
FL("REASSOC Attempt on channel %d to "MAC_ADDRESS_STR),
- req->channel_hint->hw_value,
- MAC_ADDR_ARRAY(req->bssid_hint));
- status = hdd_reassoc(adapter, req->bssid_hint,
- req->channel_hint->hw_value,
- CONNECT_CMD_USERSPACE);
+ channel, MAC_ADDR_ARRAY(bssid));
+ status = hdd_reassoc(adapter, bssid, channel,
+ CONNECT_CMD_USERSPACE);
}
return status;
}