diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-11-22 05:57:41 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-11-22 16:43:32 -0500 |
commit | 1f2149c1df50c8c712950872675f46e6e44629f0 (patch) | |
tree | a33a556696e27611b6b38cdcbb6de9315f483bd4 /drivers/net | |
parent | 84b405011166e663fe9ef56c29b1d76f59b35568 (diff) |
net: remove netdev_alloc_page and use __GFP_COLD
Given we dont use anymore the struct net_device *dev argument, and this
interface brings litle benefit, remove netdev_{alloc|free}_page(), to
debloat include/linux/skbuff.h a bit.
(Some drivers used a mix of these interfaces and alloc_pages())
When allocating a page given to device for DMA transfer (device to
memory), it makes sense to use a cold one (__GFP_COLD)
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
CC: Dimitris Michailidis <dm@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/sge.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4vf/sge.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 | ||||
-rw-r--r-- | drivers/net/usb/cdc-phonet.c | 10 |
6 files changed, 13 insertions, 14 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/sge.c b/drivers/net/ethernet/chelsio/cxgb4/sge.c index 140254c7cba..2dae7959f00 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb4/sge.c | |||
@@ -491,7 +491,7 @@ static unsigned int refill_fl(struct adapter *adap, struct sge_fl *q, int n, | |||
491 | __be64 *d = &q->desc[q->pidx]; | 491 | __be64 *d = &q->desc[q->pidx]; |
492 | struct rx_sw_desc *sd = &q->sdesc[q->pidx]; | 492 | struct rx_sw_desc *sd = &q->sdesc[q->pidx]; |
493 | 493 | ||
494 | gfp |= __GFP_NOWARN; /* failures are expected */ | 494 | gfp |= __GFP_NOWARN | __GFP_COLD; |
495 | 495 | ||
496 | #if FL_PG_ORDER > 0 | 496 | #if FL_PG_ORDER > 0 |
497 | /* | 497 | /* |
@@ -528,7 +528,7 @@ static unsigned int refill_fl(struct adapter *adap, struct sge_fl *q, int n, | |||
528 | #endif | 528 | #endif |
529 | 529 | ||
530 | while (n--) { | 530 | while (n--) { |
531 | pg = __netdev_alloc_page(adap->port[0], gfp); | 531 | pg = alloc_page(gfp); |
532 | if (unlikely(!pg)) { | 532 | if (unlikely(!pg)) { |
533 | q->alloc_failed++; | 533 | q->alloc_failed++; |
534 | break; | 534 | break; |
@@ -537,7 +537,7 @@ static unsigned int refill_fl(struct adapter *adap, struct sge_fl *q, int n, | |||
537 | mapping = dma_map_page(adap->pdev_dev, pg, 0, PAGE_SIZE, | 537 | mapping = dma_map_page(adap->pdev_dev, pg, 0, PAGE_SIZE, |
538 | PCI_DMA_FROMDEVICE); | 538 | PCI_DMA_FROMDEVICE); |
539 | if (unlikely(dma_mapping_error(adap->pdev_dev, mapping))) { | 539 | if (unlikely(dma_mapping_error(adap->pdev_dev, mapping))) { |
540 | netdev_free_page(adap->port[0], pg); | 540 | put_page(pg); |
541 | goto out; | 541 | goto out; |
542 | } | 542 | } |
543 | *d++ = cpu_to_be64(mapping); | 543 | *d++ = cpu_to_be64(mapping); |
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/sge.c b/drivers/net/ethernet/chelsio/cxgb4vf/sge.c index 8d5d55ad102..c381db23e71 100644 --- a/drivers/net/ethernet/chelsio/cxgb4vf/sge.c +++ b/drivers/net/ethernet/chelsio/cxgb4vf/sge.c | |||
@@ -653,8 +653,7 @@ static unsigned int refill_fl(struct adapter *adapter, struct sge_fl *fl, | |||
653 | 653 | ||
654 | alloc_small_pages: | 654 | alloc_small_pages: |
655 | while (n--) { | 655 | while (n--) { |
656 | page = __netdev_alloc_page(adapter->port[0], | 656 | page = alloc_page(gfp | __GFP_NOWARN | __GFP_COLD); |
657 | gfp | __GFP_NOWARN); | ||
658 | if (unlikely(!page)) { | 657 | if (unlikely(!page)) { |
659 | fl->alloc_failed++; | 658 | fl->alloc_failed++; |
660 | break; | 659 | break; |
@@ -664,7 +663,7 @@ alloc_small_pages: | |||
664 | dma_addr = dma_map_page(adapter->pdev_dev, page, 0, PAGE_SIZE, | 663 | dma_addr = dma_map_page(adapter->pdev_dev, page, 0, PAGE_SIZE, |
665 | PCI_DMA_FROMDEVICE); | 664 | PCI_DMA_FROMDEVICE); |
666 | if (unlikely(dma_mapping_error(adapter->pdev_dev, dma_addr))) { | 665 | if (unlikely(dma_mapping_error(adapter->pdev_dev, dma_addr))) { |
667 | netdev_free_page(adapter->port[0], page); | 666 | put_page(page); |
668 | break; | 667 | break; |
669 | } | 668 | } |
670 | *d++ = cpu_to_be64(dma_addr); | 669 | *d++ = cpu_to_be64(dma_addr); |
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index bd9b30e6ae9..b66b8aa751e 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c | |||
@@ -6135,7 +6135,7 @@ static bool igb_alloc_mapped_page(struct igb_ring *rx_ring, | |||
6135 | return true; | 6135 | return true; |
6136 | 6136 | ||
6137 | if (!page) { | 6137 | if (!page) { |
6138 | page = netdev_alloc_page(rx_ring->netdev); | 6138 | page = alloc_page(GFP_ATOMIC | __GFP_COLD); |
6139 | bi->page = page; | 6139 | bi->page = page; |
6140 | if (unlikely(!page)) { | 6140 | if (unlikely(!page)) { |
6141 | rx_ring->rx_stats.alloc_failed++; | 6141 | rx_ring->rx_stats.alloc_failed++; |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 820fc040c24..1b28ed9d8cc 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -1140,7 +1140,7 @@ void ixgbe_alloc_rx_buffers(struct ixgbe_ring *rx_ring, u16 cleaned_count) | |||
1140 | 1140 | ||
1141 | if (ring_is_ps_enabled(rx_ring)) { | 1141 | if (ring_is_ps_enabled(rx_ring)) { |
1142 | if (!bi->page) { | 1142 | if (!bi->page) { |
1143 | bi->page = netdev_alloc_page(rx_ring->netdev); | 1143 | bi->page = alloc_page(GFP_ATOMIC | __GFP_COLD); |
1144 | if (!bi->page) { | 1144 | if (!bi->page) { |
1145 | rx_ring->rx_stats.alloc_rx_page_failed++; | 1145 | rx_ring->rx_stats.alloc_rx_page_failed++; |
1146 | goto no_buffers; | 1146 | goto no_buffers; |
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index 0c39bb1ac3b..5d1a6439816 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | |||
@@ -366,7 +366,7 @@ static void ixgbevf_alloc_rx_buffers(struct ixgbevf_adapter *adapter, | |||
366 | if (!bi->page_dma && | 366 | if (!bi->page_dma && |
367 | (adapter->flags & IXGBE_FLAG_RX_PS_ENABLED)) { | 367 | (adapter->flags & IXGBE_FLAG_RX_PS_ENABLED)) { |
368 | if (!bi->page) { | 368 | if (!bi->page) { |
369 | bi->page = netdev_alloc_page(adapter->netdev); | 369 | bi->page = alloc_page(GFP_ATOMIC | __GFP_COLD); |
370 | if (!bi->page) { | 370 | if (!bi->page) { |
371 | adapter->alloc_rx_page_failed++; | 371 | adapter->alloc_rx_page_failed++; |
372 | goto no_buffers; | 372 | goto no_buffers; |
diff --git a/drivers/net/usb/cdc-phonet.c b/drivers/net/usb/cdc-phonet.c index a60d0069cc4..331e44056f5 100644 --- a/drivers/net/usb/cdc-phonet.c +++ b/drivers/net/usb/cdc-phonet.c | |||
@@ -130,7 +130,7 @@ static int rx_submit(struct usbpn_dev *pnd, struct urb *req, gfp_t gfp_flags) | |||
130 | struct page *page; | 130 | struct page *page; |
131 | int err; | 131 | int err; |
132 | 132 | ||
133 | page = __netdev_alloc_page(dev, gfp_flags); | 133 | page = alloc_page(gfp_flags); |
134 | if (!page) | 134 | if (!page) |
135 | return -ENOMEM; | 135 | return -ENOMEM; |
136 | 136 | ||
@@ -140,7 +140,7 @@ static int rx_submit(struct usbpn_dev *pnd, struct urb *req, gfp_t gfp_flags) | |||
140 | err = usb_submit_urb(req, gfp_flags); | 140 | err = usb_submit_urb(req, gfp_flags); |
141 | if (unlikely(err)) { | 141 | if (unlikely(err)) { |
142 | dev_dbg(&dev->dev, "RX submit error (%d)\n", err); | 142 | dev_dbg(&dev->dev, "RX submit error (%d)\n", err); |
143 | netdev_free_page(dev, page); | 143 | put_page(page); |
144 | } | 144 | } |
145 | return err; | 145 | return err; |
146 | } | 146 | } |
@@ -208,9 +208,9 @@ static void rx_complete(struct urb *req) | |||
208 | dev->stats.rx_errors++; | 208 | dev->stats.rx_errors++; |
209 | resubmit: | 209 | resubmit: |
210 | if (page) | 210 | if (page) |
211 | netdev_free_page(dev, page); | 211 | put_page(page); |
212 | if (req) | 212 | if (req) |
213 | rx_submit(pnd, req, GFP_ATOMIC); | 213 | rx_submit(pnd, req, GFP_ATOMIC | __GFP_COLD); |
214 | } | 214 | } |
215 | 215 | ||
216 | static int usbpn_close(struct net_device *dev); | 216 | static int usbpn_close(struct net_device *dev); |
@@ -229,7 +229,7 @@ static int usbpn_open(struct net_device *dev) | |||
229 | for (i = 0; i < rxq_size; i++) { | 229 | for (i = 0; i < rxq_size; i++) { |
230 | struct urb *req = usb_alloc_urb(0, GFP_KERNEL); | 230 | struct urb *req = usb_alloc_urb(0, GFP_KERNEL); |
231 | 231 | ||
232 | if (!req || rx_submit(pnd, req, GFP_KERNEL)) { | 232 | if (!req || rx_submit(pnd, req, GFP_KERNEL | __GFP_COLD)) { |
233 | usbpn_close(dev); | 233 | usbpn_close(dev); |
234 | return -ENOMEM; | 234 | return -ENOMEM; |
235 | } | 235 | } |