mlx4_en: Fix double pci unmapping.
authorYevgeny Petrilin <yevgenyp@mellanox.co.il>
Mon, 3 Aug 2009 03:22:18 +0000 (20:22 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Aug 2009 03:22:18 +0000 (20:22 -0700)
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>
drivers/net/mlx4/en_tx.c

index 08c43f2ae72b0f9fb0ebf4eb08926ceefd5f5fb3..5a88b3f576931f33063eeb2749dcb70e8eff70d4 100644 (file)
@@ -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 */