Prechádzať zdrojové kódy

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 rokov pred
rodič
commit
45690711be
1 zmenil súbory, kde vykonal 8 pridanie a 5 odobranie
  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;