From e9e3cd4bc0328528fbcc81a1d5c9175d464362e7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ralf=20B=C3=A4chle?= Date: Sat, 8 Nov 2003 02:24:10 -0500 Subject: [PATCH] [netdrvr pcnet32] add missing pci_dma_sync_single a patch for the pcnet32.c driver which adds a missing call to pci_dma_sync_single. If a received packet is smaller than rx_copybreak the pcnet driver will recycle the receive buffer which requires calling pci_dma_sync_single. Patch is against 2.6 but I it's also needed in 2.4. Without that call the processor might still have old stale data in the data cache when the processor accesses the recycled buffer. --- drivers/net/pcnet32.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index 2d519b6965333..92fafabcd86b9 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c @@ -1376,6 +1376,10 @@ pcnet32_rx(struct net_device *dev) 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_dma_addr[entry], + PKT_BUF_SZ, + PCI_DMA_FROMDEVICE); eth_copy_and_sum(skb, (unsigned char *)(lp->rx_skbuff[entry]->tail), pkt_len,0); -- 2.53.0