From d5b4b9f267eb6bad167848704300b6944e702171 Mon Sep 17 00:00:00 2001 From: Yue Ma Date: Fri, 26 May 2017 16:23:40 -0700 Subject: [PATCH] qcacld-3.0: Delete peers during SSR for STA and P2P client modes Peers have to be deleted to avoid leaking for STA and P2P client modes during SSR. Change-Id: I4ac88cc64f4ff36e0441f92affee6fdb674e3a6e CRs-fixed: 2021415 --- core/hdd/src/wlan_hdd_main.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 137fb5db375f..e34e8166af20 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -4153,6 +4153,8 @@ QDF_STATUS hdd_reset_all_adapters(hdd_context_t *hdd_ctx) hdd_adapter_list_node_t *adapterNode = NULL, *pNext = NULL; QDF_STATUS status; hdd_adapter_t *adapter; + hdd_station_ctx_t *pHddStaCtx; + struct qdf_mac_addr peerMacAddr; ENTER(); @@ -4162,7 +4164,8 @@ QDF_STATUS hdd_reset_all_adapters(hdd_context_t *hdd_ctx) while (NULL != adapterNode && QDF_STATUS_SUCCESS == status) { adapter = adapterNode->pAdapter; - hdd_notice("Disabling queues"); + hdd_notice("Disabling queues for adapter type: %d", + adapter->device_mode); if (hdd_ctx->config->sap_internal_restart && adapter->device_mode == QDF_SAP_MODE) { wlan_hdd_netif_queue_control(adapter, @@ -4199,6 +4202,17 @@ QDF_STATUS hdd_reset_all_adapters(hdd_context_t *hdd_ctx) wlansap_set_invalid_session( WLAN_HDD_GET_SAP_CTX_PTR(adapter)); + /* Delete peers if any for STA and P2P client modes */ + if (adapter->device_mode == QDF_STA_MODE || + adapter->device_mode == QDF_P2P_CLIENT_MODE) { + pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(adapter); + qdf_copy_macaddr(&peerMacAddr, + &pHddStaCtx->conn_info.bssId); + + hdd_objmgr_remove_peer_object(adapter->hdd_vdev, + peerMacAddr.bytes); + } + /* Destroy vdev which will be recreated during reinit. */ hdd_vdev_destroy(adapter);