qcacmn: Create a list of skbs to be freed at once

Create a list of skbs to be freed at once in dp tx completion path

Change-Id: I42129b4306206f7224ceabc87d07e2a87b8fcab6
CRs-Fixed: 3274945
This commit is contained in:
Neha Bisht
2022-07-18 18:00:38 +05:30
committed by Madan Koyyalamudi
parent 801226f363
commit 5d0b7ea33f
6 changed files with 177 additions and 9 deletions

View File

@@ -746,6 +746,21 @@ __qdf_nbuf_t __qdf_nbuf_clone(__qdf_nbuf_t skb)
qdf_export_symbol(__qdf_nbuf_clone);
#ifdef QCA_DP_TX_NBUF_LIST_FREE
void
__qdf_nbuf_dev_kfree_list(__qdf_nbuf_queue_head_t *nbuf_queue_head)
{
dev_kfree_skb_list_fast(nbuf_queue_head);
}
#else
void
__qdf_nbuf_dev_kfree_list(__qdf_nbuf_queue_head_t *nbuf_queue_head)
{
}
#endif
qdf_export_symbol(__qdf_nbuf_dev_kfree_list);
#ifdef NBUF_MEMORY_DEBUG
struct qdf_nbuf_event {
qdf_nbuf_t nbuf;
@@ -3892,6 +3907,23 @@ unshare_buf:
qdf_export_symbol(qdf_nbuf_unshare_debug);
void
qdf_nbuf_dev_kfree_list_debug(__qdf_nbuf_queue_head_t *nbuf_queue_head,
const char *func, uint32_t line)
{
qdf_nbuf_t buf;
if (qdf_nbuf_queue_empty(nbuf_queue_head))
return;
if (is_initial_mem_debug_disabled)
return __qdf_nbuf_dev_kfree_list(nbuf_queue_head);
while ((buf = qdf_nbuf_queue_head_dequeue(nbuf_queue_head)) != NULL)
qdf_nbuf_free_debug(buf, func, line);
}
qdf_export_symbol(qdf_nbuf_dev_kfree_list_debug);
#endif /* NBUF_MEMORY_DEBUG */
#if defined(FEATURE_TSO)