Browse Source

qcacld-3.0: Do not unmap skb_buf if the owner is ipa when vdev flush

Do not unmap the skb_buf if the owner is the ipa module when doing the
ol_txrx_vdev_flush.

For WDI 1.0 MCC TX, the IPA driver will push skb to wlan for transmission.
The skb_buffer has been mapped in the IPA driver before sending to wlan.
So no need to do unmap the skb_buf again in the wlan driver.

Change-Id: I2c1f8e916aca12f3efa73e3540e3d27c434617a1
CRs-Fixed: 2244442
Tiger Yu 6 years ago
parent
commit
baed8cd125
1 changed files with 2 additions and 1 deletions
  1. 2 1
      core/dp/txrx/ol_tx_queue.c

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

@@ -1788,7 +1788,8 @@ void ol_txrx_vdev_flush(struct cdp_vdev *pvdev)
 		qdf_nbuf_t next =
 			qdf_nbuf_next(vdev->ll_pause.txq.head);
 		qdf_nbuf_set_next(vdev->ll_pause.txq.head, NULL);
-		if (QDF_NBUF_CB_PADDR(vdev->ll_pause.txq.head)) {
+		if (QDF_NBUF_CB_PADDR(vdev->ll_pause.txq.head) &&
+			!qdf_nbuf_ipa_owned_get(vdev->ll_pause.txq.head)) {
 			qdf_nbuf_unmap(vdev->pdev->osdev,
 				       vdev->ll_pause.txq.head,
 				       QDF_DMA_TO_DEVICE);