qcacmn: Fix ref leaks for vdev and peer
Fix ref leaks for vdev and peer in DP Change-Id: If75b7dd1d96d211c2360ef65052e19e783c9ea40 CRs-Fixed: 3469902
This commit is contained in:

committed by
Madan Koyyalamudi

parent
b33c5ecbf3
commit
e8753b5a36
@@ -12120,8 +12120,10 @@ uint16_t dp_get_peer_mac_list(ol_txrx_soc_handle soc, uint8_t vdev_id,
|
||||
if (!vdev)
|
||||
return new_mac_cnt;
|
||||
|
||||
if (limit && (vdev->num_peers > mac_cnt))
|
||||
if (limit && (vdev->num_peers > mac_cnt)) {
|
||||
dp_vdev_unref_delete(dp_soc, vdev, DP_MOD_ID_CDP);
|
||||
return 0;
|
||||
}
|
||||
|
||||
qdf_spin_lock_bh(&vdev->peer_list_lock);
|
||||
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
||||
|
@@ -3476,8 +3476,13 @@ dp_clear_peer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||
|
||||
peer = dp_peer_find_hash_find(soc, peer_addr.bytes,
|
||||
0, DP_VDEV_ALL, DP_MOD_ID_CDP);
|
||||
if (!peer || !peer->valid)
|
||||
|
||||
if (!peer)
|
||||
return QDF_STATUS_E_FAULT;
|
||||
if (!peer->valid) {
|
||||
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
|
||||
return QDF_STATUS_E_FAULT;
|
||||
}
|
||||
|
||||
dp_clear_peer_internal(soc, peer);
|
||||
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);
|
||||
|
@@ -472,8 +472,10 @@ static QDF_STATUS dp_vdev_set_monitor_mode(struct cdp_soc_t *dp_soc,
|
||||
|
||||
pdev = vdev->pdev;
|
||||
|
||||
if (!pdev || !pdev->monitor_pdev)
|
||||
if (!pdev || !pdev->monitor_pdev) {
|
||||
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_CDP);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
mon_pdev = pdev->monitor_pdev;
|
||||
|
||||
|
Reference in New Issue
Block a user