From 58c241c551ae5b77e829ae0876fe2445d2071d71 Mon Sep 17 00:00:00 2001 From: Bala Venkatesh Date: Tue, 6 Aug 2019 16:27:24 +0530 Subject: [PATCH] qcacld-3.0: Release TDLS del sta serialization command After sending the wmi_peer_delete command to FW. If there is a change in channel info of HT cap from connected AP. Then TDLS peers in lim will be deleted and dph entry will be freed. While processing the tdls del sta response from FW if dph entry is NULL then WLAN_SER_CMD_TDLS_DEL_PEER is not released and that can lead to active command timeout. Release the serialization command in case of NULL dph entry. Change-Id: Ib56806875cc84a0ecb9bcab16e9e0bb9d118efbb CRs-Fixed: 2503993 --- core/mac/src/pe/lim/lim_process_tdls.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c index 269e027c8146..b0771c37a24f 100644 --- a/core/mac/src/pe/lim/lim_process_tdls.c +++ b/core/mac/src/pe/lim/lim_process_tdls.c @@ -3255,17 +3255,21 @@ void lim_process_tdls_del_sta_rsp(struct mac_context *mac_ctx, return; } + qdf_mem_copy(peer_mac.bytes, + del_sta_params->staMac, QDF_MAC_ADDR_SIZE); + sta_ds = dph_lookup_hash_entry(mac_ctx, del_sta_params->staMac, &peer_idx, &session_entry->dph.dphHashTable); if (!sta_ds) { - pe_err("DPH Entry for STA: %X is missing", - DPH_STA_HASH_INDEX_PEER); + pe_err("DPH Entry for STA: %X is missing release the serialization command", + DPH_STA_HASH_INDEX_PEER); + lim_send_sme_tdls_del_sta_rsp(mac_ctx, + session_entry->smeSessionId, + peer_mac, NULL, + QDF_STATUS_SUCCESS); goto skip_event; } - qdf_mem_copy(peer_mac.bytes, - del_sta_params->staMac, QDF_MAC_ADDR_SIZE); - if (QDF_STATUS_SUCCESS != del_sta_params->status) { pe_err("DEL STA failed!"); lim_send_sme_tdls_del_sta_rsp(mac_ctx,