summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Dhamdhere <ddhamdhe@codeaurora.org>2016-11-12 15:08:22 -0800
committerqcabuildsw <qcabuildsw@localhost>2016-11-23 11:15:45 -0800
commit8659b539e47a1f0f943cdde9e8ec05bbf5b434ad (patch)
tree3fbf68c2aa63b5594981218b9770db2a307f0ab4
parent3b7d2f915e7b5dfd826cb61061d6b68424f2c5ce (diff)
qcacld-3.0: Allow REASSOC to same BSSID
Allow wlan_hdd_cfg80211_connect() and wpa_cli "REASSOC" command to reassociate to same bssid by using the currently connected channel. CRs-Fixed: 1089293 Change-Id: Idee480dc480a137426dd3189e1ca1e542bcf053a
-rw-r--r--core/hdd/inc/wlan_hdd_main.h2
-rw-r--r--core/hdd/src/wlan_hdd_ioctl.c13
2 files changed, 7 insertions, 8 deletions
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index 7fa9e703ec92..9321876ec459 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -1935,7 +1935,7 @@ static inline int wlan_hdd_nl_init(hdd_context_t *hdd_ctx)
QDF_STATUS hdd_sme_close_session_callback(void *pContext);
int hdd_reassoc(hdd_adapter_t *adapter, const uint8_t *bssid,
- const uint8_t channel, const handoff_src src);
+ uint8_t channel, const handoff_src src);
void hdd_svc_fw_shutdown_ind(struct device *dev);
int hdd_register_cb(hdd_context_t *hdd_ctx);
void hdd_deregister_cb(hdd_context_t *hdd_ctx);
diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c
index 38bce8dbe581..3f6615c993da 100644
--- a/core/hdd/src/wlan_hdd_ioctl.c
+++ b/core/hdd/src/wlan_hdd_ioctl.c
@@ -874,9 +874,9 @@ void hdd_wma_send_fastreassoc_cmd(int sessionId, const tSirMacAddr bssid,
/**
* hdd_reassoc() - perform a userspace-directed reassoc
- * @adapter: Adapter upon which the command was received
- * @bssid: BSSID with which to reassociate
- * @channel: channel upon which to reassociate
+ * @adapter: Adapter upon which the command was received
+ * @bssid: BSSID with which to reassociate
+ * @channel: channel upon which to reassociate
* @src: The source for the trigger of this action
*
* This function performs a userspace-directed reassoc operation
@@ -884,7 +884,7 @@ void hdd_wma_send_fastreassoc_cmd(int sessionId, const tSirMacAddr bssid,
* Return: 0 for success non-zero for failure
*/
int hdd_reassoc(hdd_adapter_t *adapter, const uint8_t *bssid,
- const uint8_t channel, const handoff_src src)
+ uint8_t channel, const handoff_src src)
{
hdd_station_ctx_t *pHddStaCtx;
hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
@@ -913,13 +913,12 @@ int hdd_reassoc(hdd_adapter_t *adapter, const uint8_t *bssid,
/*
* if the target bssid is same as currently associated AP,
- * then no need to proceed with reassoc
+ * use the current connections's channel.
*/
if (!memcmp(bssid, pHddStaCtx->conn_info.bssId.bytes,
QDF_MAC_ADDR_SIZE)) {
hdd_info("Reassoc BSSID is same as currently associated AP bssid");
- ret = -EINVAL;
- goto exit;
+ channel = pHddStaCtx->conn_info.operationChannel;
}
/* Check channel number is a valid channel number */