qcacmn: Decrement peer ref count on rx hw stats req failure

Peer ref count incremented in dp_request_rx_hw_stats
is not decremented back in case of error scenarios
resulting in possible ref leak and failure in peer
deletion.

Fix is to invoke dp_peer_unref_delete for error
scenarios in dp_request_rx_hw_stats error.

Change-Id: I81ecf60a97ff5c804445fd713ed779c478df8521
CRs-Fixed: 2706596
This commit is contained in:
Yeshwanth Sriram Guntuka
2020-06-09 19:54:22 +05:30
committed by nshrivas
parent 1eb43f3787
commit b72685beaa

View File

@@ -10260,6 +10260,7 @@ dp_request_rx_hw_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id)
if (!rx_hw_stats) {
dp_err("malloc failed for hw stats structure");
dp_peer_unref_delete(peer);
return QDF_STATUS_E_NOMEM;
}
@@ -10271,6 +10272,7 @@ dp_request_rx_hw_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id)
dp_err("no tid stats sent successfully");
qdf_mem_free(rx_hw_stats);
qdf_spin_unlock_bh(&soc->rx_hw_stats_lock);
dp_peer_unref_delete(peer);
return QDF_STATUS_E_INVAL;
}
qdf_atomic_set(&rx_hw_stats->pending_tid_stats_cnt,