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@xxxxxxxxxxxxx> --- This patch can be applied to netdev-2.6 tree or 2.6.21-rc3-mm2. diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c index ec888db..eed78b5 100644 --- a/drivers/net/tc35815.c +++ b/drivers/net/tc35815.c @@ -58,12 +58,13 @@ * 1.34 Fix netpoll locking. "BH rule" for NAPI is not enough with * netpoll, hard_start_xmit might be called from irq context. * PM support. + * 1.35 Fix an usage of streaming DMA API. */ #ifdef TC35815_NAPI -#define DRV_VERSION "1.34-NAPI" +#define DRV_VERSION "1.35-NAPI" #else -#define DRV_VERSION "1.34" +#define DRV_VERSION "1.35" #endif static const char *version = "tc35815.c:v" DRV_VERSION "\n"; #define MODNAME "tc35815" @@ -1551,6 +1552,11 @@ tc35815_rx(struct net_device *dev) PCI_DMA_FROMDEVICE); #endif memcpy(data + offset, rxbuf, len); +#ifdef TC35815_DMA_SYNC_ONDEMAND + pci_dma_sync_single_for_device(lp->pci_dev, + dma, len, + PCI_DMA_FROMDEVICE); +#endif offset += len; cur_bd++; }