aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tc35815.c
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2007-03-13 12:02:20 -0400
committerJeff Garzik <jeff@garzik.org>2007-04-28 11:00:58 -0400
commit793bc0afbdccd97e66b2bdf43c2ce5653140ee5e (patch)
tree5383129defd96eeab108cfcc4178d19cd0ec4284 /drivers/net/tc35815.c
parent1e56a4b4029dd1cabf73f28970b5c11bcbae6bb7 (diff)
tc35815: Fix an usage of streaming DMA API.
The tc35815 driver lacks a call to pci_dma_sync_single_for_device() on receiving. Recent fix of MIPS dma_sync_single_for_cpu() reveal this bug. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/tc35815.c')
-rw-r--r--drivers/net/tc35815.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index 1a1b74c956bd..b269b187b55f 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -58,12 +58,13 @@
58 * 1.34 Fix netpoll locking. "BH rule" for NAPI is not enough with 58 * 1.34 Fix netpoll locking. "BH rule" for NAPI is not enough with
59 * netpoll, hard_start_xmit might be called from irq context. 59 * netpoll, hard_start_xmit might be called from irq context.
60 * PM support. 60 * PM support.
61 * 1.35 Fix an usage of streaming DMA API.
61 */ 62 */
62 63
63#ifdef TC35815_NAPI 64#ifdef TC35815_NAPI
64#define DRV_VERSION "1.34-NAPI" 65#define DRV_VERSION "1.35-NAPI"
65#else 66#else
66#define DRV_VERSION "1.34" 67#define DRV_VERSION "1.35"
67#endif 68#endif
68static const char *version = "tc35815.c:v" DRV_VERSION "\n"; 69static const char *version = "tc35815.c:v" DRV_VERSION "\n";
69#define MODNAME "tc35815" 70#define MODNAME "tc35815"
@@ -1550,6 +1551,11 @@ tc35815_rx(struct net_device *dev)
1550 PCI_DMA_FROMDEVICE); 1551 PCI_DMA_FROMDEVICE);
1551#endif 1552#endif
1552 memcpy(data + offset, rxbuf, len); 1553 memcpy(data + offset, rxbuf, len);
1554#ifdef TC35815_DMA_SYNC_ONDEMAND
1555 pci_dma_sync_single_for_device(lp->pci_dev,
1556 dma, len,
1557 PCI_DMA_FROMDEVICE);
1558#endif
1553 offset += len; 1559 offset += len;
1554 cur_bd++; 1560 cur_bd++;
1555 } 1561 }