Преглед изворни кода

qcacld-3.0: Flush vdev's TXQ with the same TID as inserted one

qcacld-2.0 to qcacld-3.0 propagation

Currently TXQ of DEFAULT_MGMT packet is using TID
HTT_TX_EXT_TID_MGMT when we inserted into Scheduler, so use
same TID when we flush it.

Change-Id: I1631b7706d1f8bf0352ceecb8836d82743526e44
CRs-Fixed: 1000968
(cherry picked from commit 9b41b24a9da6b9415ebdafb6e4574f0b03570e9e)
gbian пре 8 година
родитељ
комит
bf0e062ca3
1 измењених фајлова са 21 додато и 1 уклоњено
  1. 21 1
      core/dp/txrx/ol_tx_queue.c

+ 21 - 1
core/dp/txrx/ol_tx_queue.c

@@ -80,7 +80,27 @@ ol_tx_queue_vdev_flush(struct ol_txrx_pdev_t *pdev, struct ol_txrx_vdev_t *vdev)
 	/* flush VDEV TX queues */
 	for (i = 0; i < OL_TX_VDEV_NUM_QUEUES; i++) {
 		txq = &vdev->txqs[i];
-		ol_tx_queue_free(pdev, txq, (i + OL_TX_NUM_TIDS), false);
+		/*
+		 * currently txqs of MCAST_BCAST/DEFAULT_MGMT packet are using
+		 * tid HTT_TX_EXT_TID_NON_QOS_MCAST_BCAST/HTT_TX_EXT_TID_MGMT
+		 * when inserted into scheduler, so use same tid when we flush
+		 * them
+		 */
+		if (i == OL_TX_VDEV_MCAST_BCAST)
+			ol_tx_queue_free(pdev,
+					txq,
+					HTT_TX_EXT_TID_NON_QOS_MCAST_BCAST,
+					false);
+		else if (i == OL_TX_VDEV_DEFAULT_MGMT)
+			ol_tx_queue_free(pdev,
+					txq,
+					HTT_TX_EXT_TID_MGMT,
+					false);
+		else
+			ol_tx_queue_free(pdev,
+					txq,
+					(i + OL_TX_NUM_TIDS),
+					false);
 	}
 	/* flush PEER TX queues */
 	do {