From b8b6e58eb48e5f392808e25382fc2246d03f9fd4 Mon Sep 17 00:00:00 2001 From: Mohit Khanna Date: Mon, 23 Jul 2018 11:37:12 -0700 Subject: [PATCH] qcacld-3.0: Remove peer AST entries on peer delete During peer removal, call cdp_peer_teardown to make sure all the peer AST entries are removed. This also marks the peer->delete_in_progress flag. Change-Id: Ibe4a0244cadc2b8073e4e71a925a615447d00933 CRs-Fixed: 2287663 --- core/wma/src/wma_dev_if.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 826eca6a2611..7b9c6957dfe0 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1429,7 +1429,6 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid, QDF_BUG(0); return; } - peer_mac_addr = cdp_peer_get_peer_mac_addr(soc, peer); if (peer_mac_addr == NULL) { WMA_LOGE("%s: peer mac addr is NULL, Can't remove peer with peer_addr %pM vdevid %d peer_count %d", @@ -1438,6 +1437,15 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid, QDF_BUG(0); return; } + vdev = cdp_get_vdev_from_vdev_id(soc, pdev, vdev_id); + if (!vdev) { + WMA_LOGE("%s vdev is null for peer peer->mac_addr %pM", + __func__, peer_mac_addr); + QDF_BUG(0); + return; + } + + cdp_peer_teardown(soc, vdev, peer); if (roam_synch_in_progress) goto peer_detach; @@ -1468,7 +1476,6 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid, } peer_detach: - vdev = cdp_get_vdev_from_vdev_id(soc, pdev, vdev_id); WMA_LOGD("%s: vdev %pK is detaching %pK with peer_addr %pM vdevid %d peer_count %d", __func__, vdev, peer, peer_mac_addr, vdev_id, wma->interfaces[vdev_id].peer_count);