]> git.itanic.dy.fi Git - linux-stable/commitdiff
net: sgi: ioc3-eth: Fix the size used in some 'dma_free_coherent()' calls
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 2 Aug 2020 13:52:04 +0000 (15:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Aug 2020 06:24:07 +0000 (08:24 +0200)
[ Upstream commit edab74e9cb1d073c70add0f9b75e17aebf0598ff ]

Update the size used in 'dma_free_coherent()' in order to match the one
used in the corresponding 'dma_alloc_coherent()'.

Fixes: 369a782af0f1 ("net: sgi: ioc3-eth: ensure tx ring is 16k aligned.")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/sgi/ioc3-eth.c

index 6646eba9f57fe6014bd4a9c7d94f00a68626ddc7..6eef0f45b133beda41ddff121a37e354266adb69 100644 (file)
@@ -951,7 +951,7 @@ static int ioc3eth_probe(struct platform_device *pdev)
                dma_free_coherent(ip->dma_dev, RX_RING_SIZE, ip->rxr,
                                  ip->rxr_dma);
        if (ip->tx_ring)
-               dma_free_coherent(ip->dma_dev, TX_RING_SIZE, ip->tx_ring,
+               dma_free_coherent(ip->dma_dev, TX_RING_SIZE + SZ_16K - 1, ip->tx_ring,
                                  ip->txr_dma);
 out_free:
        free_netdev(dev);
@@ -964,7 +964,7 @@ static int ioc3eth_remove(struct platform_device *pdev)
        struct ioc3_private *ip = netdev_priv(dev);
 
        dma_free_coherent(ip->dma_dev, RX_RING_SIZE, ip->rxr, ip->rxr_dma);
-       dma_free_coherent(ip->dma_dev, TX_RING_SIZE, ip->tx_ring, ip->txr_dma);
+       dma_free_coherent(ip->dma_dev, TX_RING_SIZE + SZ_16K - 1, ip->tx_ring, ip->txr_dma);
 
        unregister_netdev(dev);
        del_timer_sync(&ip->ioc3_timer);