[Top] [All Lists]

Re: pcnet32.c bug?

To: Brian Murphy <>, linux-mips <>
Subject: Re: pcnet32.c bug?
From: Kevin Paul Herbert <>
Date: Wed, 29 May 2002 07:43:52 -0700
In-reply-to: <>
References: <>
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 <> just sent e-mail on the subject of problems with the cache invalidation routines last Saturday, with Message-ID: <>


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?


--- drivers/net/pcnet32.c       19 Mar 2002 16:40:55 -0000
+++ drivers/net/pcnet32.c       29 May 2002 09:57:33 -0000
@@ -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);
(unsigned char *)(lp->rx_skbuff[entry]->tail),


<Prev in Thread] Current Thread [Next in Thread>