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