Pārlūkot izejas kodu

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
Yeshwanth Sriram Guntuka 2 gadi atpakaļ
vecāks
revīzija
45690711be
1 mainītis faili ar 8 papildinājumiem un 5 dzēšanām
  1. 8 5
      dp/wifi3.0/dp_tx.c

+ 8 - 5
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;