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 | } |
