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:

committad av
nshrivas

förälder
24f704eefc
incheckning
8e5e2f86c4
@@ -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]);
|
||||
|
Referens i nytt ärende
Block a user