diff options
Diffstat (limited to 'drivers/net/acenic.c')
-rw-r--r-- | drivers/net/acenic.c | 43 |
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 | } |