From 3a251813a2a1fd3149814cac7cf5c82c90e1a67c Mon Sep 17 00:00:00 2001 From: bings Date: Tue, 2 Jun 2020 18:16:48 +0800 Subject: [PATCH] qcacld-3.0: Set group key to FW when sap starts If any group key is gotten before sap bss starts, it should be sent to FW when sap bss starts. There should be no valid unicast key before sap bss starts, so no need to set the key to FW as unicast key again. All the saved group key should be set to FW when sap starts. Change-Id: I8a36415b896881b2e7c0ab72b9679eb1daa86e80 CRs-Fixed: 2705593 --- core/hdd/src/wlan_hdd_hostapd.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c index 33105955ca51..67000933d659 100644 --- a/core/hdd/src/wlan_hdd_hostapd.c +++ b/core/hdd/src/wlan_hdd_hostapd.c @@ -1691,20 +1691,20 @@ hdd_hostapd_apply_action_oui(struct hdd_context *hdd_ctx, static void hdd_hostapd_set_sap_key(struct hdd_adapter *adapter) { struct wlan_crypto_key *crypto_key; + uint8_t key_index; - crypto_key = wlan_crypto_get_key(adapter->vdev, 0); - if (!crypto_key) { - QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG, - "Crypto KEY is NULL"); - return; + for (key_index = 0; key_index < WLAN_CRYPTO_MAXKEYIDX; ++key_index) { + crypto_key = wlan_crypto_get_key(adapter->vdev, key_index); + if (!crypto_key) { + hdd_debug("Crypto KEY with key id %d is NULL", + key_index); + continue; + } + ucfg_crypto_set_key_req(adapter->vdev, crypto_key, + WLAN_CRYPTO_KEY_TYPE_GROUP); + wma_update_set_key(adapter->vdev_id, false, key_index, + crypto_key->cipher_type); } - ucfg_crypto_set_key_req(adapter->vdev, crypto_key, - WLAN_CRYPTO_KEY_TYPE_UNICAST); - wma_update_set_key(adapter->vdev_id, true, 1, crypto_key->cipher_type); - ucfg_crypto_set_key_req(adapter->vdev, crypto_key, - WLAN_CRYPTO_KEY_TYPE_GROUP); - - wma_update_set_key(adapter->vdev_id, true, 0, crypto_key->cipher_type); } /**