Subject: pcnet32.c bug?

From: Brian Murphy <[email-masked]>
Date: Wed, 29 May 2002 12:46:57 +0200

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);

---

From: Kevin Paul Herbert <[email-masked]>
Date: Wed, 29 May 2002 07:43:52 -0700

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:[email-masked]> just sent 
e-mail on the subject of problems with the cache invalidation 
routines last Saturday, with Message-ID: 
<[email-masked]>

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

--

---

From: William Jhun <[email-masked]>
Date: Thu, 30 May 2002 09:45:05 -0700

> on my vr5000 box is extremely jerky. It also seems quite sensible to have a

Yes, that should be there by all means. We had to add that exact same
line to get our pcnet32 working on MIPS.

Thanks,
William