diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index a236181f4f..643a15a174 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -2459,6 +2459,32 @@ fail_return: return nbuf; } +/** + * dp_tdls_tx_comp_free_buff() - Free non std buffer when TDLS flag is set + * @soc: Soc handle + * @desc: software Tx descriptor to be processed + * + * Return: 0 if Success + */ +#ifdef FEATURE_WLAN_TDLS +static inline int +dp_tdls_tx_comp_free_buff(struct dp_soc *soc, struct dp_tx_desc_s *desc) +{ + /* If it is TDLS mgmt, don't unmap or free the frame */ + if (desc->flags & DP_TX_DESC_FLAG_TDLS_FRAME) { + dp_non_std_htt_tx_comp_free_buff(soc, desc); + return 0; + } + return 1; +} +#else +static inline int +dp_tdls_tx_comp_free_buff(struct dp_soc *soc, struct dp_tx_desc_s *desc) +{ + return 1; +} +#endif + /** * dp_tx_comp_free_buf() - Free nbuf associated with the Tx Descriptor * @soc: Soc handle @@ -2477,11 +2503,8 @@ qdf_nbuf_t dp_tx_comp_free_buf(struct dp_soc *soc, struct dp_tx_desc_s *desc, if (!nbuf) return NULL; - /* If it is TDLS mgmt, don't unmap or free the frame */ - if (desc->flags & DP_TX_DESC_FLAG_TDLS_FRAME) { - dp_non_std_htt_tx_comp_free_buff(soc, desc); + if (!dp_tdls_tx_comp_free_buff(soc, desc)) return NULL; - } /* 0 : MSDU buffer, 1 : MLE */ if (desc->msdu_ext_desc) {