summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>2009-08-03 05:22:18 +0200
committerDavid S. Miller <davem@davemloft.net>2009-08-03 05:22:18 +0200
commiteb4ad826419ab5b1260bc1625249114767d36bea (patch)
tree456a5d1386cc8daf59377da886240048907c1949
parentmISDN: Fix handling of receive buffer size in L1oIP (diff)
downloadlinux-eb4ad826419ab5b1260bc1625249114767d36bea.tar.xz
linux-eb4ad826419ab5b1260bc1625249114767d36bea.zip
mlx4_en: Fix double pci unmapping.
In cases of fragmented skb, with the data pointers being wrapped around the TX buffer, the completion handling code would not forward the data pointer and the firs fragment was unmapped several times, while others were not unmapped at all. Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/mlx4/en_tx.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/mlx4/en_tx.c b/drivers/net/mlx4/en_tx.c
index 08c43f2ae72b..5a88b3f57693 100644
--- a/drivers/net/mlx4/en_tx.c
+++ b/drivers/net/mlx4/en_tx.c
@@ -249,6 +249,7 @@ static u32 mlx4_en_free_tx_desc(struct mlx4_en_priv *priv,
pci_unmap_page(mdev->pdev,
(dma_addr_t) be64_to_cpu(data->addr),
frag->size, PCI_DMA_TODEVICE);
+ ++data;
}
}
/* Stamp the freed descriptor */