diff options
| author | Ralf Bächle <ralf@linux-mips.org> | 2003-11-08 02:24:10 -0500 |
|---|---|---|
| committer | Ralf Bächle <ralf@linux-mips.org> | 2003-11-08 02:24:10 -0500 |
| commit | e9e3cd4bc0328528fbcc81a1d5c9175d464362e7 (patch) | |
| tree | 48c5233978e403180ba01a3fa54ecc830bc79df2 | |
| parent | 215a574e0bc05a66769d11ddd4c2ca7d465e19b4 (diff) | |
[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.
| -rw-r--r-- | drivers/net/pcnet32.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index 2d519b696533..92fafabcd86b 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); |
