]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
staging: fsl-dpaa2/eth: Fix DMA mapping direction
authorIoana Radulescu <ruxandra.radulescu@nxp.com>
Mon, 9 Jul 2018 15:01:07 +0000 (10:01 -0500)
committerJuerg Haefliger <juergh@canonical.com>
Wed, 24 Jul 2019 01:49:50 +0000 (19:49 -0600)
BugLink: https://bugs.launchpad.net/bugs/1836117
[ Upstream commit 466bcdc1fa303be175c45d054bb00effc575033a ]

We are using DMA_FROM_DEVICE when mapping RX frame buffers,
but DMA_BIDIRECTIONAL for unmap. Fix the direction for DMA
unmapping operation.

Fixes: 87eb55e418b7 ("staging: fsl-dpaa2/eth: Fix potential endless loop")
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c

index 446fa0d1fbeac52fcd8dae4e68fff3c5b106dd38..71cb3e720991cce1942b2d36795d3005d840a465 100644 (file)
@@ -744,7 +744,7 @@ static void free_bufs(struct dpaa2_eth_priv *priv, u64 *buf_array, int count)
        for (i = 0; i < count; i++) {
                vaddr = dpaa2_iova_to_virt(priv->iommu_domain, buf_array[i]);
                dma_unmap_single(dev, buf_array[i], DPAA2_ETH_RX_BUF_SIZE,
-                                DMA_BIDIRECTIONAL);
+                                DMA_FROM_DEVICE);
                skb_free_frag(vaddr);
        }
 }