|
@@ -1240,8 +1240,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;
|
|
|
|
|
@@ -1630,6 +1635,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);
|
|
@@ -1779,6 +1795,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;
|
|
|
}
|
|
|
|