From 45690711be12f47cc0b66e37cec5e90a1f1d3c46 Mon Sep 17 00:00:00 2001 From: Yeshwanth Sriram Guntuka Date: Wed, 10 May 2023 12:11:18 +0530 Subject: [PATCH] qcacmn: Set to_fw to 1 in HW descriptor for scattered skb The to_fw bit in HW descriptor is not set for exception marked skb that is scattered across multiple pages. In the case of direct link, this would result in crash as TQM bypass mode is used for direct link vdev. Fix is to set the to_fw bit to 1 in HW descriptor for exception marked skb. Change-Id: I060ad4ad59f85e09f39bd85080e0b3138a39402c CRs-Fixed: 3490554 --- dp/wifi3.0/dp_tx.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 8a324a1a03..ba1fdd29e8 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -1319,13 +1319,16 @@ static struct dp_tx_desc_s *dp_tx_prepare_desc(struct dp_vdev *vdev, goto failure; } -#if TQM_BYPASS_WAR - /* Temporary WAR due to TQM VP issues */ - tx_desc->flags |= DP_TX_DESC_FLAG_TO_FW; - qdf_atomic_inc(&soc->num_tx_exception); +#if !TQM_BYPASS_WAR + if (qdf_unlikely(msdu_info->exception_fw) || + dp_tx_is_nbuf_marked_exception(soc, nbuf)) #endif - if (qdf_unlikely(msdu_info->exception_fw)) + { + /* Temporary WAR due to TQM VP issues */ tx_desc->flags |= DP_TX_DESC_FLAG_TO_FW; + qdf_atomic_inc(&soc->num_tx_exception); + } + tx_desc->msdu_ext_desc = msdu_ext_desc; tx_desc->flags |= DP_TX_DESC_FLAG_FRAG;