aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/acenic.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/acenic.c')
-rw-r--r--drivers/net/acenic.c43
1 files changed, 20 insertions, 23 deletions
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 4ae750ef1e10..1328eb9b841d 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -67,6 +67,7 @@
67#include <linux/highmem.h> 67#include <linux/highmem.h>
68#include <linux/sockios.h> 68#include <linux/sockios.h>
69#include <linux/firmware.h> 69#include <linux/firmware.h>
70#include <linux/slab.h>
70 71
71#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) 72#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
72#include <linux/if_vlan.h> 73#include <linux/if_vlan.h>
@@ -660,7 +661,7 @@ static void __devexit acenic_remove_one(struct pci_dev *pdev)
660 dma_addr_t mapping; 661 dma_addr_t mapping;
661 662
662 ringp = &ap->skb->rx_std_skbuff[i]; 663 ringp = &ap->skb->rx_std_skbuff[i];
663 mapping = pci_unmap_addr(ringp, mapping); 664 mapping = dma_unmap_addr(ringp, mapping);
664 pci_unmap_page(ap->pdev, mapping, 665 pci_unmap_page(ap->pdev, mapping,
665 ACE_STD_BUFSIZE, 666 ACE_STD_BUFSIZE,
666 PCI_DMA_FROMDEVICE); 667 PCI_DMA_FROMDEVICE);
@@ -680,7 +681,7 @@ static void __devexit acenic_remove_one(struct pci_dev *pdev)
680 dma_addr_t mapping; 681 dma_addr_t mapping;
681 682
682 ringp = &ap->skb->rx_mini_skbuff[i]; 683 ringp = &ap->skb->rx_mini_skbuff[i];
683 mapping = pci_unmap_addr(ringp,mapping); 684 mapping = dma_unmap_addr(ringp,mapping);
684 pci_unmap_page(ap->pdev, mapping, 685 pci_unmap_page(ap->pdev, mapping,
685 ACE_MINI_BUFSIZE, 686 ACE_MINI_BUFSIZE,
686 PCI_DMA_FROMDEVICE); 687 PCI_DMA_FROMDEVICE);
@@ -699,7 +700,7 @@ static void __devexit acenic_remove_one(struct pci_dev *pdev)
699 dma_addr_t mapping; 700 dma_addr_t mapping;
700 701
701 ringp = &ap->skb->rx_jumbo_skbuff[i]; 702 ringp = &ap->skb->rx_jumbo_skbuff[i];
702 mapping = pci_unmap_addr(ringp, mapping); 703 mapping = dma_unmap_addr(ringp, mapping);
703 pci_unmap_page(ap->pdev, mapping, 704 pci_unmap_page(ap->pdev, mapping,
704 ACE_JUMBO_BUFSIZE, 705 ACE_JUMBO_BUFSIZE,
705 PCI_DMA_FROMDEVICE); 706 PCI_DMA_FROMDEVICE);
@@ -1682,7 +1683,7 @@ static void ace_load_std_rx_ring(struct ace_private *ap, int nr_bufs)
1682 ACE_STD_BUFSIZE, 1683 ACE_STD_BUFSIZE,
1683 PCI_DMA_FROMDEVICE); 1684 PCI_DMA_FROMDEVICE);
1684 ap->skb->rx_std_skbuff[idx].skb = skb; 1685 ap->skb->rx_std_skbuff[idx].skb = skb;
1685 pci_unmap_addr_set(&ap->skb->rx_std_skbuff[idx], 1686 dma_unmap_addr_set(&ap->skb->rx_std_skbuff[idx],
1686 mapping, mapping); 1687 mapping, mapping);
1687 1688
1688 rd = &ap->rx_std_ring[idx]; 1689 rd = &ap->rx_std_ring[idx];
@@ -1743,7 +1744,7 @@ static void ace_load_mini_rx_ring(struct ace_private *ap, int nr_bufs)
1743 ACE_MINI_BUFSIZE, 1744 ACE_MINI_BUFSIZE,
1744 PCI_DMA_FROMDEVICE); 1745 PCI_DMA_FROMDEVICE);
1745 ap->skb->rx_mini_skbuff[idx].skb = skb; 1746 ap->skb->rx_mini_skbuff[idx].skb = skb;
1746 pci_unmap_addr_set(&ap->skb->rx_mini_skbuff[idx], 1747 dma_unmap_addr_set(&ap->skb->rx_mini_skbuff[idx],
1747 mapping, mapping); 1748 mapping, mapping);
1748 1749
1749 rd = &ap->rx_mini_ring[idx]; 1750 rd = &ap->rx_mini_ring[idx];
@@ -1799,7 +1800,7 @@ static void ace_load_jumbo_rx_ring(struct ace_private *ap, int nr_bufs)
1799 ACE_JUMBO_BUFSIZE, 1800 ACE_JUMBO_BUFSIZE,
1800 PCI_DMA_FROMDEVICE); 1801 PCI_DMA_FROMDEVICE);
1801 ap->skb->rx_jumbo_skbuff[idx].skb = skb; 1802 ap->skb->rx_jumbo_skbuff[idx].skb = skb;
1802 pci_unmap_addr_set(&ap->skb->rx_jumbo_skbuff[idx], 1803 dma_unmap_addr_set(&ap->skb->rx_jumbo_skbuff[idx],
1803 mapping, mapping); 1804 mapping, mapping);
1804 1805
1805 rd = &ap->rx_jumbo_ring[idx]; 1806 rd = &ap->rx_jumbo_ring[idx];
@@ -2012,7 +2013,7 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
2012 skb = rip->skb; 2013 skb = rip->skb;
2013 rip->skb = NULL; 2014 rip->skb = NULL;
2014 pci_unmap_page(ap->pdev, 2015 pci_unmap_page(ap->pdev,
2015 pci_unmap_addr(rip, mapping), 2016 dma_unmap_addr(rip, mapping),
2016 mapsize, 2017 mapsize,
2017 PCI_DMA_FROMDEVICE); 2018 PCI_DMA_FROMDEVICE);
2018 skb_put(skb, retdesc->size); 2019 skb_put(skb, retdesc->size);
@@ -2077,18 +2078,16 @@ static inline void ace_tx_int(struct net_device *dev,
2077 2078
2078 do { 2079 do {
2079 struct sk_buff *skb; 2080 struct sk_buff *skb;
2080 dma_addr_t mapping;
2081 struct tx_ring_info *info; 2081 struct tx_ring_info *info;
2082 2082
2083 info = ap->skb->tx_skbuff + idx; 2083 info = ap->skb->tx_skbuff + idx;
2084 skb = info->skb; 2084 skb = info->skb;
2085 mapping = pci_unmap_addr(info, mapping);
2086 2085
2087 if (mapping) { 2086 if (dma_unmap_len(info, maplen)) {
2088 pci_unmap_page(ap->pdev, mapping, 2087 pci_unmap_page(ap->pdev, dma_unmap_addr(info, mapping),
2089 pci_unmap_len(info, maplen), 2088 dma_unmap_len(info, maplen),
2090 PCI_DMA_TODEVICE); 2089 PCI_DMA_TODEVICE);
2091 pci_unmap_addr_set(info, mapping, 0); 2090 dma_unmap_len_set(info, maplen, 0);
2092 } 2091 }
2093 2092
2094 if (skb) { 2093 if (skb) {
@@ -2376,14 +2375,12 @@ static int ace_close(struct net_device *dev)
2376 2375
2377 for (i = 0; i < ACE_TX_RING_ENTRIES(ap); i++) { 2376 for (i = 0; i < ACE_TX_RING_ENTRIES(ap); i++) {
2378 struct sk_buff *skb; 2377 struct sk_buff *skb;
2379 dma_addr_t mapping;
2380 struct tx_ring_info *info; 2378 struct tx_ring_info *info;
2381 2379
2382 info = ap->skb->tx_skbuff + i; 2380 info = ap->skb->tx_skbuff + i;
2383 skb = info->skb; 2381 skb = info->skb;
2384 mapping = pci_unmap_addr(info, mapping);
2385 2382
2386 if (mapping) { 2383 if (dma_unmap_len(info, maplen)) {
2387 if (ACE_IS_TIGON_I(ap)) { 2384 if (ACE_IS_TIGON_I(ap)) {
2388 /* NB: TIGON_1 is special, tx_ring is in io space */ 2385 /* NB: TIGON_1 is special, tx_ring is in io space */
2389 struct tx_desc __iomem *tx; 2386 struct tx_desc __iomem *tx;
@@ -2394,10 +2391,10 @@ static int ace_close(struct net_device *dev)
2394 } else 2391 } else
2395 memset(ap->tx_ring + i, 0, 2392 memset(ap->tx_ring + i, 0,
2396 sizeof(struct tx_desc)); 2393 sizeof(struct tx_desc));
2397 pci_unmap_page(ap->pdev, mapping, 2394 pci_unmap_page(ap->pdev, dma_unmap_addr(info, mapping),
2398 pci_unmap_len(info, maplen), 2395 dma_unmap_len(info, maplen),
2399 PCI_DMA_TODEVICE); 2396 PCI_DMA_TODEVICE);
2400 pci_unmap_addr_set(info, mapping, 0); 2397 dma_unmap_len_set(info, maplen, 0);
2401 } 2398 }
2402 if (skb) { 2399 if (skb) {
2403 dev_kfree_skb(skb); 2400 dev_kfree_skb(skb);
@@ -2432,8 +2429,8 @@ ace_map_tx_skb(struct ace_private *ap, struct sk_buff *skb,
2432 2429
2433 info = ap->skb->tx_skbuff + idx; 2430 info = ap->skb->tx_skbuff + idx;
2434 info->skb = tail; 2431 info->skb = tail;
2435 pci_unmap_addr_set(info, mapping, mapping); 2432 dma_unmap_addr_set(info, mapping, mapping);
2436 pci_unmap_len_set(info, maplen, skb->len); 2433 dma_unmap_len_set(info, maplen, skb->len);
2437 return mapping; 2434 return mapping;
2438} 2435}
2439 2436
@@ -2552,8 +2549,8 @@ restart:
2552 } else { 2549 } else {
2553 info->skb = NULL; 2550 info->skb = NULL;
2554 } 2551 }
2555 pci_unmap_addr_set(info, mapping, mapping); 2552 dma_unmap_addr_set(info, mapping, mapping);
2556 pci_unmap_len_set(info, maplen, frag->size); 2553 dma_unmap_len_set(info, maplen, frag->size);
2557 ace_load_tx_bd(ap, desc, mapping, flagsize, vlan_tag); 2554 ace_load_tx_bd(ap, desc, mapping, flagsize, vlan_tag);
2558 } 2555 }
2559 } 2556 }