From: Dale Farnsworth Date: Wed, 13 Sep 2006 16:21:08 +0000 (-0700) Subject: [PATCH] mv643xx_eth: Unmap DMA buffers in receive path X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=71d28725548be203e8b8f6ad63b1f64fd7f02d4d;p=openwrt%2Fstaging%2Fblogic.git [PATCH] mv643xx_eth: Unmap DMA buffers in receive path 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 Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 760c61b98867..eeab1df5bef3 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c @@ -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++;