[PATCH] mv643xx_eth: Unmap DMA buffers in receive path
authorDale Farnsworth <dale@farnsworth.org>
Wed, 13 Sep 2006 16:21:08 +0000 (09:21 -0700)
committerJeff Garzik <jeff@garzik.org>
Wed, 13 Sep 2006 16:26:03 +0000 (12:26 -0400)
Fix a missing call to dma_unmap_single() in the receive path.  Without
this call, errors have been observed on non-cache-coherent systems.

Signed-off-by Dale Farnsworth <dale@farnsworth.org>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/mv643xx_eth.c

index 760c61b9886709515efb39e2fefbc4d41ce0a3e7..eeab1df5bef3fba416adb963ce557db02f2ba734 100644 (file)
@@ -385,6 +385,8 @@ static int mv643xx_eth_receive_queue(struct net_device *dev, int budget)
        struct pkt_info pkt_info;
 
        while (budget-- > 0 && eth_port_receive(mp, &pkt_info) == ETH_OK) {
+               dma_unmap_single(NULL, pkt_info.buf_ptr, RX_SKB_SIZE,
+                                                       DMA_FROM_DEVICE);
                mp->rx_desc_count--;
                received_packets++;