summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorEsben Haabendal <esben@geanix.com>2019-04-30 10:17:55 +0300
committerDavid S. Miller <davem@davemloft.net>2019-05-01 21:33:30 +0300
commita8c9bd3ba84084b6cca704d5b21ee0ba971b748b (patch)
treefa6c927b9bece67c46cc39fa6bc8ebe246563da7 /drivers/net
parentf14f5c11f051ca4a41e65017d94408e5e702ba9d (diff)
downloadlinux-a8c9bd3ba84084b6cca704d5b21ee0ba971b748b.tar.xz
net: ll_temac: Fix iommu/swiotlb leak
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@geanix.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/xilinx/ll_temac_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c
index d3899e7efd45..7e42746f2292 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);