Yes, this fix is correct... I made the same patch locally... sorry we haven't submited it yet... turns out we've dropeed this one from our own latest sources; thanks for the reminder. :-) Note that there is another problem with cache line invalidation and the use of pci_dma_sync_single(), where one can get stale entries in the cache when the buffer is next re-used for DMA. My co-worker Will Jhun <mailto:wjhun@ayrnetworks.com> just sent e-mail on the subject of problems with the cache invalidation routines last Saturday, with Message-ID: <20020525131806.A4073@ayrnetworks.com> Kevin At 12:46 PM +0200 5/29/02, Brian Murphy wrote: >If I don't apply the following patch to pcnet32.c then the network connection >on my vr5000 box is extremely jerky. It also seems quite sensible to have a >dma sync operation here. > >any comments? > >/Brian > > >--- drivers/net/pcnet32.c 19 Mar 2002 16:40:55 -0000 1.1.1.1.2.1.2.6 >+++ drivers/net/pcnet32.c 29 May 2002 09:57:33 -0000 1.13.4.2 >@@ -1343,6 +1351,10 @@ > if (!rx_in_place) { > skb_reserve(skb,2); /* 16 byte align */ > skb_put(skb,pkt_len); /* Make room */ >+ pci_dma_sync_single(lp->pci_dev, >+ lp->rx_skbuff[entry]->tail, >+ pkt_len, >+ PCI_DMA_FROMDEVICE); > eth_copy_and_sum(skb, > (unsigned char >*)(lp->rx_skbuff[entry]->tail), > pkt_len,0); --