From f2bc4850faa91c6fc7699ea567095f634d2f850d Mon Sep 17 00:00:00 2001 From: Min Liu Date: Fri, 3 Aug 2018 17:10:28 +0800 Subject: [PATCH] qcacld-3.0: Delete peer when vdev start timeout When failure status is received in vdev start response from FW, host will call wma_remove_peer to delete peer. However, this operation is not done in the timeout handler of vdev start request and it will lead to peer leak when vdev start response failed to be received from FW. Add peer deletion in vdev start request timeout handler accordingly. Change-Id: I419369d09be1bd4b7e19e45b11256190fd2ec267 CRs-Fixed: 2288937 --- core/wma/src/wma_dev_if.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 29ae3eafd0f0..7b834b8b2b22 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -3676,6 +3676,14 @@ void wma_vdev_resp_timer(void *data) wma_trigger_recovery_assert_on_fw_timeout( WMA_ADD_BSS_REQ); } else { + peer = cdp_peer_find_by_addr(soc, pdev, params->bssId, + &peer_id); + if (peer) + wma_remove_peer(wma, params->bssId, + tgt_req->vdev_id, peer, false); + else + WMA_LOGE("%s: Failed to find peer", __func__); + wma_send_msg_high_priority(wma, WMA_ADD_BSS_RSP, (void *)params, 0); QDF_ASSERT(0);