]> www.infradead.org Git - users/dwmw2/linux.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Sep 2018 06:39:42 +0000 (08:39 +0200)
[ 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>
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c

index 396371728aa1475c695d5e2db3dd46fc8f1bae3d..537d5bb5e2946e337564ce195bda85df4d2b9c99 100644 (file)
@@ -767,7 +767,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);
        }
 }