]> git.neil.brown.name Git - history.git/commitdiff
[netdrvr r8169] DMA api resync.
authorFrançois Romieu <romieu@fr.zoreil.com>
Tue, 6 Apr 2004 04:19:34 +0000 (00:19 -0400)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 6 Apr 2004 04:19:34 +0000 (00:19 -0400)
drivers/net/r8169.c

index abb22ae2cca932a4cf97a83a70e740615897c26d..bc62f5aa8a6dea28e441de06808738fc069f19c3 100644 (file)
@@ -1429,19 +1429,22 @@ rtl8169_rx_interrupt(struct net_device *dev, struct rtl8169_private *tp,
                        struct RxDesc *desc = tp->RxDescArray + entry;
                        struct sk_buff *skb = tp->Rx_skbuff[entry];
                        int pkt_size = (status & 0x00001FFF) - 4;
+                       void (*pci_action)(struct pci_dev *, dma_addr_t,
+                               size_t, int) = pci_dma_sync_single_for_device;
 
-                       pci_dma_sync_single(tp->pci_dev,
-                                           le32_to_cpu(desc->buf_addr),
-                                           RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
+
+                       pci_dma_sync_single_for_cpu(tp->pci_dev,
+                               le32_to_cpu(desc->buf_addr), RX_BUF_SIZE,
+                               PCI_DMA_FROMDEVICE);
 
                        if (rtl8169_try_rx_copy(&skb, pkt_size, desc, dev)) {
-                               pci_unmap_single(tp->pci_dev,
-                                                le32_to_cpu(desc->buf_addr),
-                                                RX_BUF_SIZE,
-                                                PCI_DMA_FROMDEVICE);
+                               pci_action = pci_unmap_single;
                                tp->Rx_skbuff[entry] = NULL;
                        }
 
+                       pci_action(tp->pci_dev, le32_to_cpu(desc->buf_addr),
+                                  RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
+
                        skb_put(skb, pkt_size);
                        skb->protocol = eth_type_trans(skb, dev);
                        netif_rx(skb);