diff options
author | Rajeev Kumar <rajekuma@codeaurora.org> | 2017-10-10 15:31:17 -0700 |
---|---|---|
committer | snandini <snandini@codeaurora.org> | 2017-10-10 19:58:26 -0700 |
commit | 123770cd37ace6bfc0faab421ae6e522a0088da2 (patch) | |
tree | 85cbc74061118e21d547247368cc7a28f4331192 /core/wma/src/wma_mgmt.c | |
parent | 94a711510b3a55386a5fa048cb7dd4a7f2a0a7f9 (diff) | |
download | qcacld-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.c | 25 |
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, ¶ms); + + 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; } |