From 491f6bc603524e6309dca58a1cb29f6fc02b37d5 Mon Sep 17 00:00:00 2001 From: Yu Wang Date: Tue, 8 Sep 2020 14:46:23 +0800 Subject: [PATCH] qcacld-3.0: free keys for vdev when disconnect from AP Free keys for vdev when disconnect from AP in STA mode, otherwise, the keys may be used in the next connection, which will result in connection failure. CRs-Fixed: 2773040 Change-Id: I6d3e858cdc5b38b25a4431b9aaf5f2fc3e1019c7 --- core/hdd/src/wlan_hdd_assoc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index f6f15f360945..edb891a79d52 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -1828,6 +1828,7 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter, struct wlan_ies disconnect_ies = {0}; bool from_ap = false; uint32_t reason_code = 0; + struct wlan_objmgr_vdev *vdev; if (!dev) { hdd_err("net_dev is released return"); @@ -1957,6 +1958,15 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter, mac_handle = hdd_ctx->mac_handle; sme_ft_reset(mac_handle, adapter->vdev_id); sme_reset_key(mac_handle, adapter->vdev_id); + + if (adapter->device_mode == QDF_STA_MODE) { + vdev = hdd_objmgr_get_vdev(adapter); + if (vdev) { + wlan_crypto_free_vdev_key(vdev); + hdd_objmgr_put_vdev(vdev); + } + } + hdd_remove_beacon_filter(adapter); if (sme_is_beacon_report_started(mac_handle, adapter->vdev_id)) {