summaryrefslogtreecommitdiff
path: root/core/wma/src/wma_mgmt.c
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@codeaurora.org>2017-10-10 15:31:17 -0700
committersnandini <snandini@codeaurora.org>2017-10-10 19:58:26 -0700
commit123770cd37ace6bfc0faab421ae6e522a0088da2 (patch)
tree85cbc74061118e21d547247368cc7a28f4331192 /core/wma/src/wma_mgmt.c
parent94a711510b3a55386a5fa048cb7dd4a7f2a0a7f9 (diff)
downloadqcacld-123770cd37ace6bfc0faab421ae6e522a0088da2.tar.gz
qcacld-3.0: Add 1 second timed wake lock for 4 way handshake
Add 1 second wake lock for 4 way handshake to avoid APPS power collapse in middle of eapol exchange which can delay the association process. Change-Id: Ife73dc00aa05b5a80d0a90afd18468bd033ebdd9 CRs-Fixed: 2118533
Diffstat (limited to 'core/wma/src/wma_mgmt.c')
-rw-r--r--core/wma/src/wma_mgmt.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c
index de01b191bc..df5d7d889b 100644
--- a/core/wma/src/wma_mgmt.c
+++ b/core/wma/src/wma_mgmt.c
@@ -1232,8 +1232,13 @@ QDF_STATUS wma_send_peer_assoc(tp_wma_handle wma,
#ifdef FEATURE_WLAN_WAPI
|| params->encryptType == eSIR_ED_WPI
#endif /* FEATURE_WLAN_WAPI */
- )
+ ) {
cmd->peer_flags |= WMI_PEER_NEED_PTK_4_WAY;
+ WMA_LOGD("Acquire set key wake lock for %d ms",
+ WMA_VDEV_SET_KEY_REQUEST_TIMEOUT);
+ wma_acquire_wakelock(&intr->vdev_set_key_wakelock,
+ WMA_VDEV_SET_KEY_REQUEST_TIMEOUT);
+ }
if (params->wpa_rsn >> 1)
cmd->peer_flags |= WMI_PEER_NEED_GTK_2_WAY;
@@ -1571,6 +1576,17 @@ static QDF_STATUS wma_setup_install_key_cmd(tp_wma_handle wma_handle,
return QDF_STATUS_E_NOMEM;
}
+ if (NULL == wma_handle) {
+ WMA_LOGE(FL("Invalid wma_handle for vdev_id: %d"),
+ key_params->vdev_id);
+ return QDF_STATUS_E_INVAL;
+ }
+ if (key_params->vdev_id >= wma_handle->max_bssid) {
+ WMA_LOGE(FL("Invalid vdev_id: %d"), key_params->vdev_id);
+ return QDF_STATUS_E_INVAL;
+ }
+ iface = &wma_handle->interfaces[key_params->vdev_id];
+
params.vdev_id = key_params->vdev_id;
params.key_idx = key_params->key_idx;
qdf_mem_copy(params.peer_mac, key_params->peer_mac, IEEE80211_ADDR_LEN);
@@ -1720,6 +1736,13 @@ static QDF_STATUS wma_setup_install_key_cmd(tp_wma_handle wma_handle,
status = wmi_unified_setup_install_key_cmd(wma_handle->wmi_handle,
&params);
+
+ if (!key_params->unicast) {
+ /* Its GTK release the wake lock */
+ WMA_LOGD("Release set key wake lock");
+ wma_release_wakelock(&iface->vdev_set_key_wakelock);
+ }
+
return status;
}