Commit e9e3cd4b authored by Ralf Bächle's avatar Ralf Bächle

[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.
parent 215a574e
...@@ -1376,6 +1376,10 @@ pcnet32_rx(struct net_device *dev) ...@@ -1376,6 +1376,10 @@ pcnet32_rx(struct net_device *dev)
if (!rx_in_place) { if (!rx_in_place) {
skb_reserve(skb,2); /* 16 byte align */ skb_reserve(skb,2); /* 16 byte align */
skb_put(skb,pkt_len); /* Make room */ 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, eth_copy_and_sum(skb,
(unsigned char *)(lp->rx_skbuff[entry]->tail), (unsigned char *)(lp->rx_skbuff[entry]->tail),
pkt_len,0); pkt_len,0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment