From c3dfb6b22c91849e3e612da29fbb3703c5dad71d Mon Sep 17 00:00:00 2001 From: Neha Bisht Date: Sat, 2 Sep 2023 11:28:12 +0530 Subject: [PATCH] qcacmn: Add SPECIAL descriptor flag in tx desc Add SPECIAL descriptor flags in tx desc Change-Id: I0ee73a939ef7734b5f37cdb278642772c1a8d2b9 CRs-Fixed: 3605272 --- dp/wifi3.0/dp_tx.c | 5 ++--- dp/wifi3.0/dp_tx.h | 1 + dp/wifi3.0/dp_tx_desc.h | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index fe18c80ae0..4f178a2e21 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -422,7 +422,7 @@ dp_tx_desc_release(struct dp_soc *soc, struct dp_tx_desc_s *tx_desc, tx_desc->id, comp_status, qdf_atomic_read(&pdev->num_tx_outstanding)); - if (tx_desc->nbuf->protocol == QDF_NBUF_TRAC_EAPOL_ETH_TYPE) + if (tx_desc->flags & DP_TX_DESC_FLAG_SPECIAL) dp_tx_spcl_desc_free(soc, tx_desc, desc_pool_id); else dp_tx_desc_free(soc, tx_desc, desc_pool_id); @@ -5716,8 +5716,7 @@ dp_tx_comp_process_desc_list(struct dp_soc *soc, if (desc->pool_id != DP_TX_PPEDS_POOL_ID) { nbuf = desc->nbuf; dp_tx_nbuf_dev_queue_free_no_flag(&h, nbuf); - if (nbuf->protocol == - QDF_NBUF_TRAC_EAPOL_ETH_TYPE) + if (desc->flags & DP_TX_DESC_FLAG_SPECIAL) dp_tx_spcl_desc_free(soc, desc, desc->pool_id); else diff --git a/dp/wifi3.0/dp_tx.h b/dp/wifi3.0/dp_tx.h index 5214808d19..d3926a3471 100644 --- a/dp/wifi3.0/dp_tx.h +++ b/dp/wifi3.0/dp_tx.h @@ -75,6 +75,7 @@ int dp_tx_proxy_arp(struct dp_vdev *vdev, qdf_nbuf_t nbuf); #define DP_TX_DESC_FLAG_FASTPATH_SIMPLE 0x10000 #define DP_TX_DESC_FLAG_PPEDS 0x20000 #define DP_TX_DESC_FLAG_FAST 0x40000 +#define DP_TX_DESC_FLAG_SPECIAL 0x80000 #define DP_TX_EXT_DESC_FLAG_METADATA_VALID 0x1 diff --git a/dp/wifi3.0/dp_tx_desc.h b/dp/wifi3.0/dp_tx_desc.h index ad6e17b2e7..b4fef3eff0 100644 --- a/dp/wifi3.0/dp_tx_desc.h +++ b/dp/wifi3.0/dp_tx_desc.h @@ -1068,6 +1068,7 @@ static inline struct dp_tx_desc_s *dp_tx_spcl_desc_alloc(struct dp_soc *soc, dp_tx_prefetch_desc(pool->freelist); tx_desc->flags = DP_TX_DESC_FLAG_ALLOCATED; + tx_desc->flags |= DP_TX_DESC_FLAG_SPECIAL; TX_DESC_LOCK_UNLOCK(&pool->lock);