From baed8cd12515f22b094ffbcc826f248c14bdc61a Mon Sep 17 00:00:00 2001 From: Tiger Yu Date: Fri, 18 May 2018 16:09:38 +0800 Subject: [PATCH] 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 --- core/dp/txrx/ol_tx_queue.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/dp/txrx/ol_tx_queue.c b/core/dp/txrx/ol_tx_queue.c index 977ae6d6011e..efbcf4cf5da9 100644 --- a/core/dp/txrx/ol_tx_queue.c +++ b/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);