[PATCH v3 08/12] net: ll_temac: Fix iommu/swiotlb leak

From: Esben Haabendal
Date: Tue Apr 30 2019 - 03:18:48 EST


Unmap the actual buffer length, not the amount of data received, avoiding
resource exhaustion of swiotlb (seen on x86_64 platform).

Signed-off-by: Esben Haabendal <esben@xxxxxxxxxx>
---
drivers/net/ethernet/xilinx/ll_temac_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c
index d3899e7..7e42746 100644
--- a/drivers/net/ethernet/xilinx/ll_temac_main.c
+++ b/drivers/net/ethernet/xilinx/ll_temac_main.c
@@ -820,7 +820,7 @@ static void ll_temac_recv(struct net_device *ndev)
length = be32_to_cpu(cur_p->app4) & 0x3FFF;

dma_unmap_single(ndev->dev.parent, be32_to_cpu(cur_p->phys),
- length, DMA_FROM_DEVICE);
+ XTE_MAX_JUMBO_FRAME_SIZE, DMA_FROM_DEVICE);

skb_put(skb, length);
skb->protocol = eth_type_trans(skb, ndev);
--
2.4.11