qcacmn: Fix for the rx_desc leak

In dp_rx_get_free_desc_list() corrected the
return value in case when the number of requested
rx_desc are not available in the pool

Change-Id: I3de026726e885b8fe707f7c7318cc1936be73e65
CRs-Fixed: 2202247
This commit is contained in:
Chaithanya Garrepalli
2018-03-08 12:55:46 +05:30
committad av nshrivas
förälder 24f704eefc
incheckning 8e5e2f86c4

Visa fil

@@ -115,21 +115,16 @@ uint16_t dp_rx_get_free_desc_list(struct dp_soc *soc, uint32_t pool_id,
qdf_spin_lock_bh(&soc->rx_desc_mutex[pool_id]);
*desc_list = rx_desc_pool->freelist;
if (!(*desc_list)) {
qdf_spin_unlock_bh(&soc->rx_desc_mutex[pool_id]);
return 0;
}
*desc_list = *tail = rx_desc_pool->freelist;
for (count = 0; count < num_descs; count++) {
*tail = rx_desc_pool->freelist;
rx_desc_pool->freelist = rx_desc_pool->freelist->next;
if (qdf_unlikely(!rx_desc_pool->freelist)) {
qdf_spin_unlock_bh(&soc->rx_desc_mutex[pool_id]);
return count;
}
*tail = rx_desc_pool->freelist;
rx_desc_pool->freelist = rx_desc_pool->freelist->next;
}
(*tail)->next = NULL;
qdf_spin_unlock_bh(&soc->rx_desc_mutex[pool_id]);