aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.c2
-rw-r--r--drivers/infiniband/hw/nes/nes_nic.c2
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ib.c6
-rw-r--r--drivers/net/8139cp.c6
-rw-r--r--drivers/net/8139too.c6
-rw-r--r--drivers/net/amd8111e.c6
-rw-r--r--drivers/net/arm/ep93xx_eth.c8
-rw-r--r--drivers/net/arm/ixp4xx_eth.c12
-rw-r--r--drivers/net/atl1e/atl1e_main.c6
-rw-r--r--drivers/net/b44.c6
-rw-r--r--drivers/net/bnx2.c12
-rw-r--r--drivers/net/bnx2x_main.c6
-rw-r--r--drivers/net/cassini.c8
-rw-r--r--drivers/net/chelsio/sge.c4
-rw-r--r--drivers/net/cpmac.c10
-rw-r--r--drivers/net/e100.c6
-rw-r--r--drivers/net/e1000/e1000_main.c10
-rw-r--r--drivers/net/e1000e/netdev.c14
-rw-r--r--drivers/net/ehea/ehea_main.c8
-rw-r--r--drivers/net/enic/enic_main.c12
-rw-r--r--drivers/net/epic100.c6
-rw-r--r--drivers/net/forcedeth.c10
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c4
-rw-r--r--drivers/net/gianfar.c6
-rw-r--r--drivers/net/ibmveth.c8
-rw-r--r--drivers/net/igb/igb_main.c12
-rw-r--r--drivers/net/ixgb/ixgb_main.c6
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c12
-rw-r--r--drivers/net/ixp2000/ixpdev.c4
-rw-r--r--drivers/net/jme.h6
-rw-r--r--drivers/net/korina.c4
-rw-r--r--drivers/net/macb.c10
-rw-r--r--drivers/net/mlx4/en_rx.c4
-rw-r--r--drivers/net/myri10ge/myri10ge.c6
-rw-r--r--drivers/net/natsemi.c6
-rw-r--r--drivers/net/netxen/netxen_nic_main.c2
-rw-r--r--drivers/net/niu.c6
-rw-r--r--drivers/net/pasemi_mac.c6
-rw-r--r--drivers/net/pcnet32.c6
-rw-r--r--drivers/net/qla3xxx.c6
-rw-r--r--drivers/net/qlge/qlge_main.c6
-rw-r--r--drivers/net/r6040.c4
-rw-r--r--drivers/net/r8169.c6
-rw-r--r--drivers/net/s2io.c8
-rw-r--r--drivers/net/sb1250-mac.c6
-rw-r--r--drivers/net/sfc/efx.c4
-rw-r--r--drivers/net/sfc/efx.h2
-rw-r--r--drivers/net/skge.c6
-rw-r--r--drivers/net/smsc911x.c8
-rw-r--r--drivers/net/smsc9420.c4
-rw-r--r--drivers/net/spider_net.c12
-rw-r--r--drivers/net/starfire.c6
-rw-r--r--drivers/net/sungem.c6
-rw-r--r--drivers/net/tc35815.c6
-rw-r--r--drivers/net/tehuti.c6
-rw-r--r--drivers/net/tg3.c14
-rw-r--r--drivers/net/tsi108_eth.c8
-rw-r--r--drivers/net/tulip/interrupt.c10
-rw-r--r--drivers/net/typhoon.c6
-rw-r--r--drivers/net/ucc_geth.c6
-rw-r--r--drivers/net/via-rhine.c4
-rw-r--r--drivers/net/virtio_net.c12
-rw-r--r--drivers/net/wan/hd64572.c4
-rw-r--r--drivers/net/wan/ixp4xx_hss.c12
-rw-r--r--drivers/net/xen-netfront.c8
-rw-r--r--include/linux/netdevice.h50
66 files changed, 227 insertions, 277 deletions
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c
index 5d139db1b771..53df9de23423 100644
--- a/drivers/infiniband/hw/nes/nes_hw.c
+++ b/drivers/infiniband/hw/nes/nes_hw.c
@@ -2541,7 +2541,7 @@ static void nes_nic_napi_ce_handler(struct nes_device *nesdev, struct nes_hw_nic
2541{ 2541{
2542 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq); 2542 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
2543 2543
2544 netif_rx_schedule(&nesvnic->napi); 2544 napi_schedule(&nesvnic->napi);
2545} 2545}
2546 2546
2547 2547
diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
index 57a47cf7e513..f5484ad1279b 100644
--- a/drivers/infiniband/hw/nes/nes_nic.c
+++ b/drivers/infiniband/hw/nes/nes_nic.c
@@ -111,7 +111,7 @@ static int nes_netdev_poll(struct napi_struct *napi, int budget)
111 nes_nic_ce_handler(nesdev, nescq); 111 nes_nic_ce_handler(nesdev, nescq);
112 112
113 if (nescq->cqes_pending == 0) { 113 if (nescq->cqes_pending == 0) {
114 netif_rx_complete(napi); 114 napi_complete(napi);
115 /* clear out completed cqes and arm */ 115 /* clear out completed cqes and arm */
116 nes_write32(nesdev->regs+NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT | 116 nes_write32(nesdev->regs+NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT |
117 nescq->cq_number | (nescq->cqe_allocs_pending << 16)); 117 nescq->cq_number | (nescq->cqe_allocs_pending << 16));
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index a1925810be3c..da6082739839 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -446,11 +446,11 @@ poll_more:
446 if (dev->features & NETIF_F_LRO) 446 if (dev->features & NETIF_F_LRO)
447 lro_flush_all(&priv->lro.lro_mgr); 447 lro_flush_all(&priv->lro.lro_mgr);
448 448
449 netif_rx_complete(napi); 449 napi_complete(napi);
450 if (unlikely(ib_req_notify_cq(priv->recv_cq, 450 if (unlikely(ib_req_notify_cq(priv->recv_cq,
451 IB_CQ_NEXT_COMP | 451 IB_CQ_NEXT_COMP |
452 IB_CQ_REPORT_MISSED_EVENTS)) && 452 IB_CQ_REPORT_MISSED_EVENTS)) &&
453 netif_rx_reschedule(napi)) 453 napi_reschedule(napi))
454 goto poll_more; 454 goto poll_more;
455 } 455 }
456 456
@@ -462,7 +462,7 @@ void ipoib_ib_completion(struct ib_cq *cq, void *dev_ptr)
462 struct net_device *dev = dev_ptr; 462 struct net_device *dev = dev_ptr;
463 struct ipoib_dev_priv *priv = netdev_priv(dev); 463 struct ipoib_dev_priv *priv = netdev_priv(dev);
464 464
465 netif_rx_schedule(&priv->napi); 465 napi_schedule(&priv->napi);
466} 466}
467 467
468static void drain_tx_cq(struct net_device *dev) 468static void drain_tx_cq(struct net_device *dev)
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 4e19ae3ce6be..35517b06ec3f 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -604,7 +604,7 @@ rx_next:
604 604
605 spin_lock_irqsave(&cp->lock, flags); 605 spin_lock_irqsave(&cp->lock, flags);
606 cpw16_f(IntrMask, cp_intr_mask); 606 cpw16_f(IntrMask, cp_intr_mask);
607 __netif_rx_complete(napi); 607 __napi_complete(napi);
608 spin_unlock_irqrestore(&cp->lock, flags); 608 spin_unlock_irqrestore(&cp->lock, flags);
609 } 609 }
610 610
@@ -641,9 +641,9 @@ static irqreturn_t cp_interrupt (int irq, void *dev_instance)
641 } 641 }
642 642
643 if (status & (RxOK | RxErr | RxEmpty | RxFIFOOvr)) 643 if (status & (RxOK | RxErr | RxEmpty | RxFIFOOvr))
644 if (netif_rx_schedule_prep(&cp->napi)) { 644 if (napi_schedule_prep(&cp->napi)) {
645 cpw16_f(IntrMask, cp_norx_intr_mask); 645 cpw16_f(IntrMask, cp_norx_intr_mask);
646 __netif_rx_schedule(&cp->napi); 646 __napi_schedule(&cp->napi);
647 } 647 }
648 648
649 if (status & (TxOK | TxErr | TxEmpty | SWInt)) 649 if (status & (TxOK | TxErr | TxEmpty | SWInt))
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index a5b24202d564..5341da604e84 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -2128,7 +2128,7 @@ static int rtl8139_poll(struct napi_struct *napi, int budget)
2128 */ 2128 */
2129 spin_lock_irqsave(&tp->lock, flags); 2129 spin_lock_irqsave(&tp->lock, flags);
2130 RTL_W16_F(IntrMask, rtl8139_intr_mask); 2130 RTL_W16_F(IntrMask, rtl8139_intr_mask);
2131 __netif_rx_complete(napi); 2131 __napi_complete(napi);
2132 spin_unlock_irqrestore(&tp->lock, flags); 2132 spin_unlock_irqrestore(&tp->lock, flags);
2133 } 2133 }
2134 spin_unlock(&tp->rx_lock); 2134 spin_unlock(&tp->rx_lock);
@@ -2178,9 +2178,9 @@ static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance)
2178 /* Receive packets are processed by poll routine. 2178 /* Receive packets are processed by poll routine.
2179 If not running start it now. */ 2179 If not running start it now. */
2180 if (status & RxAckBits){ 2180 if (status & RxAckBits){
2181 if (netif_rx_schedule_prep(&tp->napi)) { 2181 if (napi_schedule_prep(&tp->napi)) {
2182 RTL_W16_F (IntrMask, rtl8139_norx_intr_mask); 2182 RTL_W16_F (IntrMask, rtl8139_norx_intr_mask);
2183 __netif_rx_schedule(&tp->napi); 2183 __napi_schedule(&tp->napi);
2184 } 2184 }
2185 } 2185 }
2186 2186
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index 7709992bb6bf..cb9c95d3ed0a 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -831,7 +831,7 @@ static int amd8111e_rx_poll(struct napi_struct *napi, int budget)
831 if (rx_pkt_limit > 0) { 831 if (rx_pkt_limit > 0) {
832 /* Receive descriptor is empty now */ 832 /* Receive descriptor is empty now */
833 spin_lock_irqsave(&lp->lock, flags); 833 spin_lock_irqsave(&lp->lock, flags);
834 __netif_rx_complete(napi); 834 __napi_complete(napi);
835 writel(VAL0|RINTEN0, mmio + INTEN0); 835 writel(VAL0|RINTEN0, mmio + INTEN0);
836 writel(VAL2 | RDMD0, mmio + CMD0); 836 writel(VAL2 | RDMD0, mmio + CMD0);
837 spin_unlock_irqrestore(&lp->lock, flags); 837 spin_unlock_irqrestore(&lp->lock, flags);
@@ -1170,11 +1170,11 @@ static irqreturn_t amd8111e_interrupt(int irq, void *dev_id)
1170 1170
1171 /* Check if Receive Interrupt has occurred. */ 1171 /* Check if Receive Interrupt has occurred. */
1172 if (intr0 & RINT0) { 1172 if (intr0 & RINT0) {
1173 if (netif_rx_schedule_prep(&lp->napi)) { 1173 if (napi_schedule_prep(&lp->napi)) {
1174 /* Disable receive interupts */ 1174 /* Disable receive interupts */
1175 writel(RINTEN0, mmio + INTEN0); 1175 writel(RINTEN0, mmio + INTEN0);
1176 /* Schedule a polling routine */ 1176 /* Schedule a polling routine */
1177 __netif_rx_schedule(&lp->napi); 1177 __napi_schedule(&lp->napi);
1178 } else if (intren0 & RINTEN0) { 1178 } else if (intren0 & RINTEN0) {
1179 printk("************Driver bug! \ 1179 printk("************Driver bug! \
1180 interrupt while in poll\n"); 1180 interrupt while in poll\n");
diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index 3ec20cc18b0c..cc7708775da0 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -298,7 +298,7 @@ poll_some_more:
298 int more = 0; 298 int more = 0;
299 299
300 spin_lock_irq(&ep->rx_lock); 300 spin_lock_irq(&ep->rx_lock);
301 __netif_rx_complete(napi); 301 __napi_complete(napi);
302 wrl(ep, REG_INTEN, REG_INTEN_TX | REG_INTEN_RX); 302 wrl(ep, REG_INTEN, REG_INTEN_TX | REG_INTEN_RX);
303 if (ep93xx_have_more_rx(ep)) { 303 if (ep93xx_have_more_rx(ep)) {
304 wrl(ep, REG_INTEN, REG_INTEN_TX); 304 wrl(ep, REG_INTEN, REG_INTEN_TX);
@@ -307,7 +307,7 @@ poll_some_more:
307 } 307 }
308 spin_unlock_irq(&ep->rx_lock); 308 spin_unlock_irq(&ep->rx_lock);
309 309
310 if (more && netif_rx_reschedule(napi)) 310 if (more && napi_reschedule(napi))
311 goto poll_some_more; 311 goto poll_some_more;
312 } 312 }
313 313
@@ -415,9 +415,9 @@ static irqreturn_t ep93xx_irq(int irq, void *dev_id)
415 415
416 if (status & REG_INTSTS_RX) { 416 if (status & REG_INTSTS_RX) {
417 spin_lock(&ep->rx_lock); 417 spin_lock(&ep->rx_lock);
418 if (likely(netif_rx_schedule_prep(&ep->napi))) { 418 if (likely(napi_schedule_prep(&ep->napi))) {
419 wrl(ep, REG_INTEN, REG_INTEN_TX); 419 wrl(ep, REG_INTEN, REG_INTEN_TX);
420 __netif_rx_schedule(&ep->napi); 420 __napi_schedule(&ep->napi);
421 } 421 }
422 spin_unlock(&ep->rx_lock); 422 spin_unlock(&ep->rx_lock);
423 } 423 }
diff --git a/drivers/net/arm/ixp4xx_eth.c b/drivers/net/arm/ixp4xx_eth.c
index 5fce1d5c1a1a..5fe17d5eaa54 100644
--- a/drivers/net/arm/ixp4xx_eth.c
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -473,7 +473,7 @@ static void eth_rx_irq(void *pdev)
473 printk(KERN_DEBUG "%s: eth_rx_irq\n", dev->name); 473 printk(KERN_DEBUG "%s: eth_rx_irq\n", dev->name);
474#endif 474#endif
475 qmgr_disable_irq(port->plat->rxq); 475 qmgr_disable_irq(port->plat->rxq);
476 netif_rx_schedule(&port->napi); 476 napi_schedule(&port->napi);
477} 477}
478 478
479static int eth_poll(struct napi_struct *napi, int budget) 479static int eth_poll(struct napi_struct *napi, int budget)
@@ -498,16 +498,16 @@ static int eth_poll(struct napi_struct *napi, int budget)
498 498
499 if ((n = queue_get_desc(rxq, port, 0)) < 0) { 499 if ((n = queue_get_desc(rxq, port, 0)) < 0) {
500#if DEBUG_RX 500#if DEBUG_RX
501 printk(KERN_DEBUG "%s: eth_poll netif_rx_complete\n", 501 printk(KERN_DEBUG "%s: eth_poll napi_complete\n",
502 dev->name); 502 dev->name);
503#endif 503#endif
504 netif_rx_complete(napi); 504 napi_complete(napi);
505 qmgr_enable_irq(rxq); 505 qmgr_enable_irq(rxq);
506 if (!qmgr_stat_empty(rxq) && 506 if (!qmgr_stat_empty(rxq) &&
507 netif_rx_reschedule(napi)) { 507 napi_reschedule(napi)) {
508#if DEBUG_RX 508#if DEBUG_RX
509 printk(KERN_DEBUG "%s: eth_poll" 509 printk(KERN_DEBUG "%s: eth_poll"
510 " netif_rx_reschedule successed\n", 510 " napi_reschedule successed\n",
511 dev->name); 511 dev->name);
512#endif 512#endif
513 qmgr_disable_irq(rxq); 513 qmgr_disable_irq(rxq);
@@ -1036,7 +1036,7 @@ static int eth_open(struct net_device *dev)
1036 } 1036 }
1037 ports_open++; 1037 ports_open++;
1038 /* we may already have RX data, enables IRQ */ 1038 /* we may already have RX data, enables IRQ */
1039 netif_rx_schedule(&port->napi); 1039 napi_schedule(&port->napi);
1040 return 0; 1040 return 0;
1041} 1041}
1042 1042
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index bb9094d4cbc9..c758884728a5 100644
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
@@ -1326,9 +1326,9 @@ static irqreturn_t atl1e_intr(int irq, void *data)
1326 AT_WRITE_REG(hw, REG_IMR, 1326 AT_WRITE_REG(hw, REG_IMR,
1327 IMR_NORMAL_MASK & ~ISR_RX_EVENT); 1327 IMR_NORMAL_MASK & ~ISR_RX_EVENT);
1328 AT_WRITE_FLUSH(hw); 1328 AT_WRITE_FLUSH(hw);
1329 if (likely(netif_rx_schedule_prep( 1329 if (likely(napi_schedule_prep(
1330 &adapter->napi))) 1330 &adapter->napi)))
1331 __netif_rx_schedule(&adapter->napi); 1331 __napi_schedule(&adapter->napi);
1332 } 1332 }
1333 } while (--max_ints > 0); 1333 } while (--max_ints > 0);
1334 /* re-enable Interrupt*/ 1334 /* re-enable Interrupt*/
@@ -1514,7 +1514,7 @@ static int atl1e_clean(struct napi_struct *napi, int budget)
1514 /* If no Tx and not enough Rx work done, exit the polling mode */ 1514 /* If no Tx and not enough Rx work done, exit the polling mode */
1515 if (work_done < budget) { 1515 if (work_done < budget) {
1516quit_polling: 1516quit_polling:
1517 netif_rx_complete(napi); 1517 napi_complete(napi);
1518 imr_data = AT_READ_REG(&adapter->hw, REG_IMR); 1518 imr_data = AT_READ_REG(&adapter->hw, REG_IMR);
1519 AT_WRITE_REG(&adapter->hw, REG_IMR, imr_data | ISR_RX_EVENT); 1519 AT_WRITE_REG(&adapter->hw, REG_IMR, imr_data | ISR_RX_EVENT);
1520 /* test debug */ 1520 /* test debug */
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index c38512ebcea6..92aaaa1ee9f1 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -874,7 +874,7 @@ static int b44_poll(struct napi_struct *napi, int budget)
874 } 874 }
875 875
876 if (work_done < budget) { 876 if (work_done < budget) {
877 netif_rx_complete(napi); 877 napi_complete(napi);
878 b44_enable_ints(bp); 878 b44_enable_ints(bp);
879 } 879 }
880 880
@@ -906,13 +906,13 @@ static irqreturn_t b44_interrupt(int irq, void *dev_id)
906 goto irq_ack; 906 goto irq_ack;
907 } 907 }
908 908
909 if (netif_rx_schedule_prep(&bp->napi)) { 909 if (napi_schedule_prep(&bp->napi)) {
910 /* NOTE: These writes are posted by the readback of 910 /* NOTE: These writes are posted by the readback of
911 * the ISTAT register below. 911 * the ISTAT register below.
912 */ 912 */
913 bp->istat = istat; 913 bp->istat = istat;
914 __b44_disable_ints(bp); 914 __b44_disable_ints(bp);
915 __netif_rx_schedule(&bp->napi); 915 __napi_schedule(&bp->napi);
916 } else { 916 } else {
917 printk(KERN_ERR PFX "%s: Error, poll already scheduled\n", 917 printk(KERN_ERR PFX "%s: Error, poll already scheduled\n",
918 dev->name); 918 dev->name);
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index d4a3dac21dcf..e817802b2483 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -3053,7 +3053,7 @@ bnx2_msi(int irq, void *dev_instance)
3053 if (unlikely(atomic_read(&bp->intr_sem) != 0)) 3053 if (unlikely(atomic_read(&bp->intr_sem) != 0))
3054 return IRQ_HANDLED; 3054 return IRQ_HANDLED;
3055 3055
3056 netif_rx_schedule(&bnapi->napi); 3056 napi_schedule(&bnapi->napi);
3057 3057
3058 return IRQ_HANDLED; 3058 return IRQ_HANDLED;
3059} 3059}
@@ -3070,7 +3070,7 @@ bnx2_msi_1shot(int irq, void *dev_instance)
3070 if (unlikely(atomic_read(&bp->intr_sem) != 0)) 3070 if (unlikely(atomic_read(&bp->intr_sem) != 0))
3071 return IRQ_HANDLED; 3071 return IRQ_HANDLED;
3072 3072
3073 netif_rx_schedule(&bnapi->napi); 3073 napi_schedule(&bnapi->napi);
3074 3074
3075 return IRQ_HANDLED; 3075 return IRQ_HANDLED;
3076} 3076}
@@ -3106,9 +3106,9 @@ bnx2_interrupt(int irq, void *dev_instance)
3106 if (unlikely(atomic_read(&bp->intr_sem) != 0)) 3106 if (unlikely(atomic_read(&bp->intr_sem) != 0))
3107 return IRQ_HANDLED; 3107 return IRQ_HANDLED;
3108 3108
3109 if (netif_rx_schedule_prep(&bnapi->napi)) { 3109 if (napi_schedule_prep(&bnapi->napi)) {
3110 bnapi->last_status_idx = sblk->status_idx; 3110 bnapi->last_status_idx = sblk->status_idx;
3111 __netif_rx_schedule(&bnapi->napi); 3111 __napi_schedule(&bnapi->napi);
3112 } 3112 }
3113 3113
3114 return IRQ_HANDLED; 3114 return IRQ_HANDLED;
@@ -3218,7 +3218,7 @@ static int bnx2_poll_msix(struct napi_struct *napi, int budget)
3218 rmb(); 3218 rmb();
3219 if (likely(!bnx2_has_fast_work(bnapi))) { 3219 if (likely(!bnx2_has_fast_work(bnapi))) {
3220 3220
3221 netif_rx_complete(napi); 3221 napi_complete(napi);
3222 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num | 3222 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
3223 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID | 3223 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
3224 bnapi->last_status_idx); 3224 bnapi->last_status_idx);
@@ -3251,7 +3251,7 @@ static int bnx2_poll(struct napi_struct *napi, int budget)
3251 3251
3252 rmb(); 3252 rmb();
3253 if (likely(!bnx2_has_work(bnapi))) { 3253 if (likely(!bnx2_has_work(bnapi))) {
3254 netif_rx_complete(napi); 3254 napi_complete(napi);
3255 if (likely(bp->flags & BNX2_FLAG_USING_MSI_OR_MSIX)) { 3255 if (likely(bp->flags & BNX2_FLAG_USING_MSI_OR_MSIX)) {
3256 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD, 3256 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD,
3257 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID | 3257 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 074374ff93f3..21764bfc048e 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -1647,7 +1647,7 @@ static irqreturn_t bnx2x_msix_fp_int(int irq, void *fp_cookie)
1647 prefetch(&fp->status_blk->c_status_block.status_block_index); 1647 prefetch(&fp->status_blk->c_status_block.status_block_index);
1648 prefetch(&fp->status_blk->u_status_block.status_block_index); 1648 prefetch(&fp->status_blk->u_status_block.status_block_index);
1649 1649
1650 netif_rx_schedule(&bnx2x_fp(bp, index, napi)); 1650 napi_schedule(&bnx2x_fp(bp, index, napi));
1651 1651
1652 return IRQ_HANDLED; 1652 return IRQ_HANDLED;
1653} 1653}
@@ -1686,7 +1686,7 @@ static irqreturn_t bnx2x_interrupt(int irq, void *dev_instance)
1686 prefetch(&fp->status_blk->c_status_block.status_block_index); 1686 prefetch(&fp->status_blk->c_status_block.status_block_index);
1687 prefetch(&fp->status_blk->u_status_block.status_block_index); 1687 prefetch(&fp->status_blk->u_status_block.status_block_index);
1688 1688
1689 netif_rx_schedule(&bnx2x_fp(bp, 0, napi)); 1689 napi_schedule(&bnx2x_fp(bp, 0, napi));
1690 1690
1691 status &= ~mask; 1691 status &= ~mask;
1692 } 1692 }
@@ -9339,7 +9339,7 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
9339#ifdef BNX2X_STOP_ON_ERROR 9339#ifdef BNX2X_STOP_ON_ERROR
9340poll_panic: 9340poll_panic:
9341#endif 9341#endif
9342 netif_rx_complete(napi); 9342 napi_complete(napi);
9343 9343
9344 bnx2x_ack_sb(bp, FP_SB_ID(fp), USTORM_ID, 9344 bnx2x_ack_sb(bp, FP_SB_ID(fp), USTORM_ID,
9345 le16_to_cpu(fp->fp_u_idx), IGU_INT_NOP, 1); 9345 le16_to_cpu(fp->fp_u_idx), IGU_INT_NOP, 1);
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 840b3d1a22f5..bb46be275339 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -2506,7 +2506,7 @@ static irqreturn_t cas_interruptN(int irq, void *dev_id)
2506 if (status & INTR_RX_DONE_ALT) { /* handle rx separately */ 2506 if (status & INTR_RX_DONE_ALT) { /* handle rx separately */
2507#ifdef USE_NAPI 2507#ifdef USE_NAPI
2508 cas_mask_intr(cp); 2508 cas_mask_intr(cp);
2509 netif_rx_schedule(&cp->napi); 2509 napi_schedule(&cp->napi);
2510#else 2510#else
2511 cas_rx_ringN(cp, ring, 0); 2511 cas_rx_ringN(cp, ring, 0);
2512#endif 2512#endif
@@ -2557,7 +2557,7 @@ static irqreturn_t cas_interrupt1(int irq, void *dev_id)
2557 if (status & INTR_RX_DONE_ALT) { /* handle rx separately */ 2557 if (status & INTR_RX_DONE_ALT) { /* handle rx separately */
2558#ifdef USE_NAPI 2558#ifdef USE_NAPI
2559 cas_mask_intr(cp); 2559 cas_mask_intr(cp);
2560 netif_rx_schedule(&cp->napi); 2560 napi_schedule(&cp->napi);
2561#else 2561#else
2562 cas_rx_ringN(cp, 1, 0); 2562 cas_rx_ringN(cp, 1, 0);
2563#endif 2563#endif
@@ -2613,7 +2613,7 @@ static irqreturn_t cas_interrupt(int irq, void *dev_id)
2613 if (status & INTR_RX_DONE) { 2613 if (status & INTR_RX_DONE) {
2614#ifdef USE_NAPI 2614#ifdef USE_NAPI
2615 cas_mask_intr(cp); 2615 cas_mask_intr(cp);
2616 netif_rx_schedule(&cp->napi); 2616 napi_schedule(&cp->napi);
2617#else 2617#else
2618 cas_rx_ringN(cp, 0, 0); 2618 cas_rx_ringN(cp, 0, 0);
2619#endif 2619#endif
@@ -2691,7 +2691,7 @@ rx_comp:
2691#endif 2691#endif
2692 spin_unlock_irqrestore(&cp->lock, flags); 2692 spin_unlock_irqrestore(&cp->lock, flags);
2693 if (enable_intr) { 2693 if (enable_intr) {
2694 netif_rx_complete(napi); 2694 napi_complete(napi);
2695 cas_unmask_intr(cp); 2695 cas_unmask_intr(cp);
2696 } 2696 }
2697 return credits; 2697 return credits;
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index d984b7995763..840da83fb3cf 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1612,7 +1612,7 @@ int t1_poll(struct napi_struct *napi, int budget)
1612 int work_done = process_responses(adapter, budget); 1612 int work_done = process_responses(adapter, budget);
1613 1613
1614 if (likely(work_done < budget)) { 1614 if (likely(work_done < budget)) {
1615 netif_rx_complete(napi); 1615 napi_complete(napi);
1616 writel(adapter->sge->respQ.cidx, 1616 writel(adapter->sge->respQ.cidx,
1617 adapter->regs + A_SG_SLEEPING); 1617 adapter->regs + A_SG_SLEEPING);
1618 } 1618 }
@@ -1630,7 +1630,7 @@ irqreturn_t t1_interrupt(int irq, void *data)
1630 1630
1631 if (napi_schedule_prep(&adapter->napi)) { 1631 if (napi_schedule_prep(&adapter->napi)) {
1632 if (process_pure_responses(adapter)) 1632 if (process_pure_responses(adapter))
1633 __netif_rx_schedule(&adapter->napi); 1633 __napi_schedule(&adapter->napi);
1634 else { 1634 else {
1635 /* no data, no NAPI needed */ 1635 /* no data, no NAPI needed */
1636 writel(sge->respQ.cidx, adapter->regs + A_SG_SLEEPING); 1636 writel(sge->respQ.cidx, adapter->regs + A_SG_SLEEPING);
diff --git a/drivers/net/cpmac.c b/drivers/net/cpmac.c
index f66548751c38..4dad04e91f6d 100644
--- a/drivers/net/cpmac.c
+++ b/drivers/net/cpmac.c
@@ -428,7 +428,7 @@ static int cpmac_poll(struct napi_struct *napi, int budget)
428 printk(KERN_WARNING "%s: rx: polling, but no queue\n", 428 printk(KERN_WARNING "%s: rx: polling, but no queue\n",
429 priv->dev->name); 429 priv->dev->name);
430 spin_unlock(&priv->rx_lock); 430 spin_unlock(&priv->rx_lock);
431 netif_rx_complete(napi); 431 napi_complete(napi);
432 return 0; 432 return 0;
433 } 433 }
434 434
@@ -514,7 +514,7 @@ static int cpmac_poll(struct napi_struct *napi, int budget)
514 if (processed == 0) { 514 if (processed == 0) {
515 /* we ran out of packets to read, 515 /* we ran out of packets to read,
516 * revert to interrupt-driven mode */ 516 * revert to interrupt-driven mode */
517 netif_rx_complete(napi); 517 napi_complete(napi);
518 cpmac_write(priv->regs, CPMAC_RX_INT_ENABLE, 1); 518 cpmac_write(priv->regs, CPMAC_RX_INT_ENABLE, 1);
519 return 0; 519 return 0;
520 } 520 }
@@ -536,7 +536,7 @@ fatal_error:
536 } 536 }
537 537
538 spin_unlock(&priv->rx_lock); 538 spin_unlock(&priv->rx_lock);
539 netif_rx_complete(napi); 539 napi_complete(napi);
540 netif_tx_stop_all_queues(priv->dev); 540 netif_tx_stop_all_queues(priv->dev);
541 napi_disable(&priv->napi); 541 napi_disable(&priv->napi);
542 542
@@ -802,9 +802,9 @@ static irqreturn_t cpmac_irq(int irq, void *dev_id)
802 802
803 if (status & MAC_INT_RX) { 803 if (status & MAC_INT_RX) {
804 queue = (status >> 8) & 7; 804 queue = (status >> 8) & 7;
805 if (netif_rx_schedule_prep(&priv->napi)) { 805 if (napi_schedule_prep(&priv->napi)) {
806 cpmac_write(priv->regs, CPMAC_RX_INT_CLEAR, 1 << queue); 806 cpmac_write(priv->regs, CPMAC_RX_INT_CLEAR, 1 << queue);
807 __netif_rx_schedule(&priv->napi); 807 __napi_schedule(&priv->napi);
808 } 808 }
809 } 809 }
810 810
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 86bb876fb123..861d2eeaa43c 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -1944,9 +1944,9 @@ static irqreturn_t e100_intr(int irq, void *dev_id)
1944 if (stat_ack & stat_ack_rnr) 1944 if (stat_ack & stat_ack_rnr)
1945 nic->ru_running = RU_SUSPENDED; 1945 nic->ru_running = RU_SUSPENDED;
1946 1946
1947 if (likely(netif_rx_schedule_prep(&nic->napi))) { 1947 if (likely(napi_schedule_prep(&nic->napi))) {
1948 e100_disable_irq(nic); 1948 e100_disable_irq(nic);
1949 __netif_rx_schedule(&nic->napi); 1949 __napi_schedule(&nic->napi);
1950 } 1950 }
1951 1951
1952 return IRQ_HANDLED; 1952 return IRQ_HANDLED;
@@ -1962,7 +1962,7 @@ static int e100_poll(struct napi_struct *napi, int budget)
1962 1962
1963 /* If budget not fully consumed, exit the polling mode */ 1963 /* If budget not fully consumed, exit the polling mode */
1964 if (work_done < budget) { 1964 if (work_done < budget) {
1965 netif_rx_complete(napi); 1965 napi_complete(napi);
1966 e100_enable_irq(nic); 1966 e100_enable_irq(nic);
1967 } 1967 }
1968 1968
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 26474c92193f..ffe466e0afb9 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -3687,12 +3687,12 @@ static irqreturn_t e1000_intr_msi(int irq, void *data)
3687 mod_timer(&adapter->watchdog_timer, jiffies + 1); 3687 mod_timer(&adapter->watchdog_timer, jiffies + 1);
3688 } 3688 }
3689 3689
3690 if (likely(netif_rx_schedule_prep(&adapter->napi))) { 3690 if (likely(napi_schedule_prep(&adapter->napi))) {
3691 adapter->total_tx_bytes = 0; 3691 adapter->total_tx_bytes = 0;
3692 adapter->total_tx_packets = 0; 3692 adapter->total_tx_packets = 0;
3693 adapter->total_rx_bytes = 0; 3693 adapter->total_rx_bytes = 0;
3694 adapter->total_rx_packets = 0; 3694 adapter->total_rx_packets = 0;
3695 __netif_rx_schedule(&adapter->napi); 3695 __napi_schedule(&adapter->napi);
3696 } else 3696 } else
3697 e1000_irq_enable(adapter); 3697 e1000_irq_enable(adapter);
3698 3698
@@ -3747,12 +3747,12 @@ static irqreturn_t e1000_intr(int irq, void *data)
3747 ew32(IMC, ~0); 3747 ew32(IMC, ~0);
3748 E1000_WRITE_FLUSH(); 3748 E1000_WRITE_FLUSH();
3749 } 3749 }
3750 if (likely(netif_rx_schedule_prep(&adapter->napi))) { 3750 if (likely(napi_schedule_prep(&adapter->napi))) {
3751 adapter->total_tx_bytes = 0; 3751 adapter->total_tx_bytes = 0;
3752 adapter->total_tx_packets = 0; 3752 adapter->total_tx_packets = 0;
3753 adapter->total_rx_bytes = 0; 3753 adapter->total_rx_bytes = 0;
3754 adapter->total_rx_packets = 0; 3754 adapter->total_rx_packets = 0;
3755 __netif_rx_schedule(&adapter->napi); 3755 __napi_schedule(&adapter->napi);
3756 } else 3756 } else
3757 /* this really should not happen! if it does it is basically a 3757 /* this really should not happen! if it does it is basically a
3758 * bug, but not a hard error, so enable ints and continue */ 3758 * bug, but not a hard error, so enable ints and continue */
@@ -3793,7 +3793,7 @@ static int e1000_clean(struct napi_struct *napi, int budget)
3793 if (work_done < budget) { 3793 if (work_done < budget) {
3794 if (likely(adapter->itr_setting & 3)) 3794 if (likely(adapter->itr_setting & 3))
3795 e1000_set_itr(adapter); 3795 e1000_set_itr(adapter);
3796 netif_rx_complete(napi); 3796 napi_complete(napi);
3797 e1000_irq_enable(adapter); 3797 e1000_irq_enable(adapter);
3798 } 3798 }
3799 3799
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 91817d0afcaf..ff5b66adfc42 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -1179,12 +1179,12 @@ static irqreturn_t e1000_intr_msi(int irq, void *data)
1179 mod_timer(&adapter->watchdog_timer, jiffies + 1); 1179 mod_timer(&adapter->watchdog_timer, jiffies + 1);
1180 } 1180 }
1181 1181
1182 if (netif_rx_schedule_prep(&adapter->napi)) { 1182 if (napi_schedule_prep(&adapter->napi)) {
1183 adapter->total_tx_bytes = 0; 1183 adapter->total_tx_bytes = 0;
1184 adapter->total_tx_packets = 0; 1184 adapter->total_tx_packets = 0;
1185 adapter->total_rx_bytes = 0; 1185 adapter->total_rx_bytes = 0;
1186 adapter->total_rx_packets = 0; 1186 adapter->total_rx_packets = 0;
1187 __netif_rx_schedule(&adapter->napi); 1187 __napi_schedule(&adapter->napi);
1188 } 1188 }
1189 1189
1190 return IRQ_HANDLED; 1190 return IRQ_HANDLED;
@@ -1246,12 +1246,12 @@ static irqreturn_t e1000_intr(int irq, void *data)
1246 mod_timer(&adapter->watchdog_timer, jiffies + 1); 1246 mod_timer(&adapter->watchdog_timer, jiffies + 1);
1247 } 1247 }
1248 1248
1249 if (netif_rx_schedule_prep(&adapter->napi)) { 1249 if (napi_schedule_prep(&adapter->napi)) {
1250 adapter->total_tx_bytes = 0; 1250 adapter->total_tx_bytes = 0;
1251 adapter->total_tx_packets = 0; 1251 adapter->total_tx_packets = 0;
1252 adapter->total_rx_bytes = 0; 1252 adapter->total_rx_bytes = 0;
1253 adapter->total_rx_packets = 0; 1253 adapter->total_rx_packets = 0;
1254 __netif_rx_schedule(&adapter->napi); 1254 __napi_schedule(&adapter->napi);
1255 } 1255 }
1256 1256
1257 return IRQ_HANDLED; 1257 return IRQ_HANDLED;
@@ -1320,10 +1320,10 @@ static irqreturn_t e1000_intr_msix_rx(int irq, void *data)
1320 adapter->rx_ring->set_itr = 0; 1320 adapter->rx_ring->set_itr = 0;
1321 } 1321 }
1322 1322
1323 if (netif_rx_schedule_prep(&adapter->napi)) { 1323 if (napi_schedule_prep(&adapter->napi)) {
1324 adapter->total_rx_bytes = 0; 1324 adapter->total_rx_bytes = 0;
1325 adapter->total_rx_packets = 0; 1325 adapter->total_rx_packets = 0;
1326 __netif_rx_schedule(&adapter->napi); 1326 __napi_schedule(&adapter->napi);
1327 } 1327 }
1328 return IRQ_HANDLED; 1328 return IRQ_HANDLED;
1329} 1329}
@@ -2028,7 +2028,7 @@ clean_rx:
2028 if (work_done < budget) { 2028 if (work_done < budget) {
2029 if (adapter->itr_setting & 3) 2029 if (adapter->itr_setting & 3)
2030 e1000_set_itr(adapter); 2030 e1000_set_itr(adapter);
2031 netif_rx_complete(napi); 2031 napi_complete(napi);
2032 if (adapter->msix_entries) 2032 if (adapter->msix_entries)
2033 ew32(IMS, adapter->rx_ring->ims_val); 2033 ew32(IMS, adapter->rx_ring->ims_val);
2034 else 2034 else
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index dfe92264e825..8dc2047da5c0 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -830,7 +830,7 @@ static int ehea_poll(struct napi_struct *napi, int budget)
830 while ((rx != budget) || force_irq) { 830 while ((rx != budget) || force_irq) {
831 pr->poll_counter = 0; 831 pr->poll_counter = 0;
832 force_irq = 0; 832 force_irq = 0;
833 netif_rx_complete(napi); 833 napi_complete(napi);
834 ehea_reset_cq_ep(pr->recv_cq); 834 ehea_reset_cq_ep(pr->recv_cq);
835 ehea_reset_cq_ep(pr->send_cq); 835 ehea_reset_cq_ep(pr->send_cq);
836 ehea_reset_cq_n1(pr->recv_cq); 836 ehea_reset_cq_n1(pr->recv_cq);
@@ -841,7 +841,7 @@ static int ehea_poll(struct napi_struct *napi, int budget)
841 if (!cqe && !cqe_skb) 841 if (!cqe && !cqe_skb)
842 return rx; 842 return rx;
843 843
844 if (!netif_rx_reschedule(napi)) 844 if (!napi_reschedule(napi))
845 return rx; 845 return rx;
846 846
847 cqe_skb = ehea_proc_cqes(pr, EHEA_POLL_MAX_CQES); 847 cqe_skb = ehea_proc_cqes(pr, EHEA_POLL_MAX_CQES);
@@ -859,7 +859,7 @@ static void ehea_netpoll(struct net_device *dev)
859 int i; 859 int i;
860 860
861 for (i = 0; i < port->num_def_qps; i++) 861 for (i = 0; i < port->num_def_qps; i++)
862 netif_rx_schedule(&port->port_res[i].napi); 862 napi_schedule(&port->port_res[i].napi);
863} 863}
864#endif 864#endif
865 865
@@ -867,7 +867,7 @@ static irqreturn_t ehea_recv_irq_handler(int irq, void *param)
867{ 867{
868 struct ehea_port_res *pr = param; 868 struct ehea_port_res *pr = param;
869 869
870 netif_rx_schedule(&pr->napi); 870 napi_schedule(&pr->napi);
871 871
872 return IRQ_HANDLED; 872 return IRQ_HANDLED;
873} 873}
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 7d60551d538f..4617956821cd 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -411,8 +411,8 @@ static irqreturn_t enic_isr_legacy(int irq, void *data)
411 } 411 }
412 412
413 if (ENIC_TEST_INTR(pba, ENIC_INTX_WQ_RQ)) { 413 if (ENIC_TEST_INTR(pba, ENIC_INTX_WQ_RQ)) {
414 if (netif_rx_schedule_prep(&enic->napi)) 414 if (napi_schedule_prep(&enic->napi))
415 __netif_rx_schedule(&enic->napi); 415 __napi_schedule(&enic->napi);
416 } else { 416 } else {
417 vnic_intr_unmask(&enic->intr[ENIC_INTX_WQ_RQ]); 417 vnic_intr_unmask(&enic->intr[ENIC_INTX_WQ_RQ]);
418 } 418 }
@@ -440,7 +440,7 @@ static irqreturn_t enic_isr_msi(int irq, void *data)
440 * writes). 440 * writes).
441 */ 441 */
442 442
443 netif_rx_schedule(&enic->napi); 443 napi_schedule(&enic->napi);
444 444
445 return IRQ_HANDLED; 445 return IRQ_HANDLED;
446} 446}
@@ -450,7 +450,7 @@ static irqreturn_t enic_isr_msix_rq(int irq, void *data)
450 struct enic *enic = data; 450 struct enic *enic = data;
451 451
452 /* schedule NAPI polling for RQ cleanup */ 452 /* schedule NAPI polling for RQ cleanup */
453 netif_rx_schedule(&enic->napi); 453 napi_schedule(&enic->napi);
454 454
455 return IRQ_HANDLED; 455 return IRQ_HANDLED;
456} 456}
@@ -1068,7 +1068,7 @@ static int enic_poll(struct napi_struct *napi, int budget)
1068 if (netdev->features & NETIF_F_LRO) 1068 if (netdev->features & NETIF_F_LRO)
1069 lro_flush_all(&enic->lro_mgr); 1069 lro_flush_all(&enic->lro_mgr);
1070 1070
1071 netif_rx_complete(napi); 1071 napi_complete(napi);
1072 vnic_intr_unmask(&enic->intr[ENIC_MSIX_RQ]); 1072 vnic_intr_unmask(&enic->intr[ENIC_MSIX_RQ]);
1073 } 1073 }
1074 1074
@@ -1112,7 +1112,7 @@ static int enic_poll_msix(struct napi_struct *napi, int budget)
1112 if (netdev->features & NETIF_F_LRO) 1112 if (netdev->features & NETIF_F_LRO)
1113 lro_flush_all(&enic->lro_mgr); 1113 lro_flush_all(&enic->lro_mgr);
1114 1114
1115 netif_rx_complete(napi); 1115 napi_complete(napi);
1116 vnic_intr_unmask(&enic->intr[ENIC_MSIX_RQ]); 1116 vnic_intr_unmask(&enic->intr[ENIC_MSIX_RQ]);
1117 } 1117 }
1118 1118
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index a539bc3163cf..b60e27dfcfa7 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -1114,9 +1114,9 @@ static irqreturn_t epic_interrupt(int irq, void *dev_instance)
1114 1114
1115 if ((status & EpicNapiEvent) && !ep->reschedule_in_poll) { 1115 if ((status & EpicNapiEvent) && !ep->reschedule_in_poll) {
1116 spin_lock(&ep->napi_lock); 1116 spin_lock(&ep->napi_lock);
1117 if (netif_rx_schedule_prep(&ep->napi)) { 1117 if (napi_schedule_prep(&ep->napi)) {
1118 epic_napi_irq_off(dev, ep); 1118 epic_napi_irq_off(dev, ep);
1119 __netif_rx_schedule(&ep->napi); 1119 __napi_schedule(&ep->napi);
1120 } else 1120 } else
1121 ep->reschedule_in_poll++; 1121 ep->reschedule_in_poll++;
1122 spin_unlock(&ep->napi_lock); 1122 spin_unlock(&ep->napi_lock);
@@ -1293,7 +1293,7 @@ rx_action:
1293 1293
1294 more = ep->reschedule_in_poll; 1294 more = ep->reschedule_in_poll;
1295 if (!more) { 1295 if (!more) {
1296 __netif_rx_complete(napi); 1296 __napi_complete(napi);
1297 outl(EpicNapiEvent, ioaddr + INTSTAT); 1297 outl(EpicNapiEvent, ioaddr + INTSTAT);
1298 epic_napi_irq_on(dev, ep); 1298 epic_napi_irq_on(dev, ep);
1299 } else 1299 } else
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 5b910cf63740..875509d7d86b 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -1760,7 +1760,7 @@ static void nv_do_rx_refill(unsigned long data)
1760 struct fe_priv *np = netdev_priv(dev); 1760 struct fe_priv *np = netdev_priv(dev);
1761 1761
1762 /* Just reschedule NAPI rx processing */ 1762 /* Just reschedule NAPI rx processing */
1763 netif_rx_schedule(&np->napi); 1763 napi_schedule(&np->napi);
1764} 1764}
1765#else 1765#else
1766static void nv_do_rx_refill(unsigned long data) 1766static void nv_do_rx_refill(unsigned long data)
@@ -3406,7 +3406,7 @@ static irqreturn_t nv_nic_irq(int foo, void *data)
3406#ifdef CONFIG_FORCEDETH_NAPI 3406#ifdef CONFIG_FORCEDETH_NAPI
3407 if (events & NVREG_IRQ_RX_ALL) { 3407 if (events & NVREG_IRQ_RX_ALL) {
3408 spin_lock(&np->lock); 3408 spin_lock(&np->lock);
3409 netif_rx_schedule(&np->napi); 3409 napi_schedule(&np->napi);
3410 3410
3411 /* Disable furthur receive irq's */ 3411 /* Disable furthur receive irq's */
3412 np->irqmask &= ~NVREG_IRQ_RX_ALL; 3412 np->irqmask &= ~NVREG_IRQ_RX_ALL;
@@ -3523,7 +3523,7 @@ static irqreturn_t nv_nic_irq_optimized(int foo, void *data)
3523#ifdef CONFIG_FORCEDETH_NAPI 3523#ifdef CONFIG_FORCEDETH_NAPI
3524 if (events & NVREG_IRQ_RX_ALL) { 3524 if (events & NVREG_IRQ_RX_ALL) {
3525 spin_lock(&np->lock); 3525 spin_lock(&np->lock);
3526 netif_rx_schedule(&np->napi); 3526 napi_schedule(&np->napi);
3527 3527
3528 /* Disable furthur receive irq's */ 3528 /* Disable furthur receive irq's */
3529 np->irqmask &= ~NVREG_IRQ_RX_ALL; 3529 np->irqmask &= ~NVREG_IRQ_RX_ALL;
@@ -3680,7 +3680,7 @@ static int nv_napi_poll(struct napi_struct *napi, int budget)
3680 /* re-enable receive interrupts */ 3680 /* re-enable receive interrupts */
3681 spin_lock_irqsave(&np->lock, flags); 3681 spin_lock_irqsave(&np->lock, flags);
3682 3682
3683 __netif_rx_complete(napi); 3683 __napi_complete(napi);
3684 3684
3685 np->irqmask |= NVREG_IRQ_RX_ALL; 3685 np->irqmask |= NVREG_IRQ_RX_ALL;
3686 if (np->msi_flags & NV_MSI_X_ENABLED) 3686 if (np->msi_flags & NV_MSI_X_ENABLED)
@@ -3706,7 +3706,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data)
3706 writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus); 3706 writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus);
3707 3707
3708 if (events) { 3708 if (events) {
3709 netif_rx_schedule(&np->napi); 3709 napi_schedule(&np->napi);
3710 /* disable receive interrupts on the nic */ 3710 /* disable receive interrupts on the nic */
3711 writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); 3711 writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask);
3712 pci_push(base); 3712 pci_push(base);
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index ce900e54d8d1..b037ce9857bf 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -209,7 +209,7 @@ static int fs_enet_rx_napi(struct napi_struct *napi, int budget)
209 209
210 if (received < budget) { 210 if (received < budget) {
211 /* done */ 211 /* done */
212 netif_rx_complete(napi); 212 napi_complete(napi);
213 (*fep->ops->napi_enable_rx)(dev); 213 (*fep->ops->napi_enable_rx)(dev);
214 } 214 }
215 return received; 215 return received;
@@ -478,7 +478,7 @@ fs_enet_interrupt(int irq, void *dev_id)
478 /* NOTE: it is possible for FCCs in NAPI mode */ 478 /* NOTE: it is possible for FCCs in NAPI mode */
479 /* to submit a spurious interrupt while in poll */ 479 /* to submit a spurious interrupt while in poll */
480 if (napi_ok) 480 if (napi_ok)
481 __netif_rx_schedule(&fep->napi); 481 __napi_schedule(&fep->napi);
482 } 482 }
483 } 483 }
484 484
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index ea530673236e..2e76699f8104 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1627,9 +1627,9 @@ static void gfar_schedule_cleanup(struct net_device *dev)
1627 spin_lock_irqsave(&priv->txlock, flags); 1627 spin_lock_irqsave(&priv->txlock, flags);
1628 spin_lock(&priv->rxlock); 1628 spin_lock(&priv->rxlock);
1629 1629
1630 if (netif_rx_schedule_prep(&priv->napi)) { 1630 if (napi_schedule_prep(&priv->napi)) {
1631 gfar_write(&priv->regs->imask, IMASK_RTX_DISABLED); 1631 gfar_write(&priv->regs->imask, IMASK_RTX_DISABLED);
1632 __netif_rx_schedule(&priv->napi); 1632 __napi_schedule(&priv->napi);
1633 } 1633 }
1634 1634
1635 spin_unlock(&priv->rxlock); 1635 spin_unlock(&priv->rxlock);
@@ -1886,7 +1886,7 @@ static int gfar_poll(struct napi_struct *napi, int budget)
1886 return budget; 1886 return budget;
1887 1887
1888 if (rx_cleaned < budget) { 1888 if (rx_cleaned < budget) {
1889 netif_rx_complete(napi); 1889 napi_complete(napi);
1890 1890
1891 /* Clear the halt bit in RSTAT */ 1891 /* Clear the halt bit in RSTAT */
1892 gfar_write(&priv->regs->rstat, RSTAT_CLEAR_RHALT); 1892 gfar_write(&priv->regs->rstat, RSTAT_CLEAR_RHALT);
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index dfa6348ac1dc..5c6315df86b9 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -1028,10 +1028,10 @@ static int ibmveth_poll(struct napi_struct *napi, int budget)
1028 1028
1029 ibmveth_assert(lpar_rc == H_SUCCESS); 1029 ibmveth_assert(lpar_rc == H_SUCCESS);
1030 1030
1031 netif_rx_complete(napi); 1031 napi_complete(napi);
1032 1032
1033 if (ibmveth_rxq_pending_buffer(adapter) && 1033 if (ibmveth_rxq_pending_buffer(adapter) &&
1034 netif_rx_reschedule(napi)) { 1034 napi_reschedule(napi)) {
1035 lpar_rc = h_vio_signal(adapter->vdev->unit_address, 1035 lpar_rc = h_vio_signal(adapter->vdev->unit_address,
1036 VIO_IRQ_DISABLE); 1036 VIO_IRQ_DISABLE);
1037 goto restart_poll; 1037 goto restart_poll;
@@ -1047,11 +1047,11 @@ static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance)
1047 struct ibmveth_adapter *adapter = netdev_priv(netdev); 1047 struct ibmveth_adapter *adapter = netdev_priv(netdev);
1048 unsigned long lpar_rc; 1048 unsigned long lpar_rc;
1049 1049
1050 if (netif_rx_schedule_prep(&adapter->napi)) { 1050 if (napi_schedule_prep(&adapter->napi)) {
1051 lpar_rc = h_vio_signal(adapter->vdev->unit_address, 1051 lpar_rc = h_vio_signal(adapter->vdev->unit_address,
1052 VIO_IRQ_DISABLE); 1052 VIO_IRQ_DISABLE);
1053 ibmveth_assert(lpar_rc == H_SUCCESS); 1053 ibmveth_assert(lpar_rc == H_SUCCESS);
1054 __netif_rx_schedule(&adapter->napi); 1054 __napi_schedule(&adapter->napi);
1055 } 1055 }
1056 return IRQ_HANDLED; 1056 return IRQ_HANDLED;
1057} 1057}
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index b82b0fb2056c..3806bb9d8bfa 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3386,8 +3386,8 @@ static irqreturn_t igb_msix_rx(int irq, void *data)
3386 3386
3387 igb_write_itr(rx_ring); 3387 igb_write_itr(rx_ring);
3388 3388
3389 if (netif_rx_schedule_prep(&rx_ring->napi)) 3389 if (napi_schedule_prep(&rx_ring->napi))
3390 __netif_rx_schedule(&rx_ring->napi); 3390 __napi_schedule(&rx_ring->napi);
3391 3391
3392#ifdef CONFIG_IGB_DCA 3392#ifdef CONFIG_IGB_DCA
3393 if (rx_ring->adapter->flags & IGB_FLAG_DCA_ENABLED) 3393 if (rx_ring->adapter->flags & IGB_FLAG_DCA_ENABLED)
@@ -3539,7 +3539,7 @@ static irqreturn_t igb_intr_msi(int irq, void *data)
3539 mod_timer(&adapter->watchdog_timer, jiffies + 1); 3539 mod_timer(&adapter->watchdog_timer, jiffies + 1);
3540 } 3540 }
3541 3541
3542 netif_rx_schedule(&adapter->rx_ring[0].napi); 3542 napi_schedule(&adapter->rx_ring[0].napi);
3543 3543
3544 return IRQ_HANDLED; 3544 return IRQ_HANDLED;
3545} 3545}
@@ -3577,7 +3577,7 @@ static irqreturn_t igb_intr(int irq, void *data)
3577 mod_timer(&adapter->watchdog_timer, jiffies + 1); 3577 mod_timer(&adapter->watchdog_timer, jiffies + 1);
3578 } 3578 }
3579 3579
3580 netif_rx_schedule(&adapter->rx_ring[0].napi); 3580 napi_schedule(&adapter->rx_ring[0].napi);
3581 3581
3582 return IRQ_HANDLED; 3582 return IRQ_HANDLED;
3583} 3583}
@@ -3612,7 +3612,7 @@ static int igb_poll(struct napi_struct *napi, int budget)
3612 !netif_running(netdev)) { 3612 !netif_running(netdev)) {
3613 if (adapter->itr_setting & 3) 3613 if (adapter->itr_setting & 3)
3614 igb_set_itr(adapter); 3614 igb_set_itr(adapter);
3615 netif_rx_complete(napi); 3615 napi_complete(napi);
3616 if (!test_bit(__IGB_DOWN, &adapter->state)) 3616 if (!test_bit(__IGB_DOWN, &adapter->state))
3617 igb_irq_enable(adapter); 3617 igb_irq_enable(adapter);
3618 return 0; 3618 return 0;
@@ -3638,7 +3638,7 @@ static int igb_clean_rx_ring_msix(struct napi_struct *napi, int budget)
3638 3638
3639 /* If not enough Rx work done, exit the polling mode */ 3639 /* If not enough Rx work done, exit the polling mode */
3640 if ((work_done == 0) || !netif_running(netdev)) { 3640 if ((work_done == 0) || !netif_running(netdev)) {
3641 netif_rx_complete(napi); 3641 napi_complete(napi);
3642 3642
3643 if (adapter->itr_setting & 3) { 3643 if (adapter->itr_setting & 3) {
3644 if (adapter->num_rx_queues == 1) 3644 if (adapter->num_rx_queues == 1)
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index eee28d395682..e2ef16b29700 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -1721,14 +1721,14 @@ ixgb_intr(int irq, void *data)
1721 if (!test_bit(__IXGB_DOWN, &adapter->flags)) 1721 if (!test_bit(__IXGB_DOWN, &adapter->flags))
1722 mod_timer(&adapter->watchdog_timer, jiffies); 1722 mod_timer(&adapter->watchdog_timer, jiffies);
1723 1723
1724 if (netif_rx_schedule_prep(&adapter->napi)) { 1724 if (napi_schedule_prep(&adapter->napi)) {
1725 1725
1726 /* Disable interrupts and register for poll. The flush 1726 /* Disable interrupts and register for poll. The flush
1727 of the posted write is intentionally left out. 1727 of the posted write is intentionally left out.
1728 */ 1728 */
1729 1729
1730 IXGB_WRITE_REG(&adapter->hw, IMC, ~0); 1730 IXGB_WRITE_REG(&adapter->hw, IMC, ~0);
1731 __netif_rx_schedule(&adapter->napi); 1731 __napi_schedule(&adapter->napi);
1732 } 1732 }
1733 return IRQ_HANDLED; 1733 return IRQ_HANDLED;
1734} 1734}
@@ -1749,7 +1749,7 @@ ixgb_clean(struct napi_struct *napi, int budget)
1749 1749
1750 /* If budget not fully consumed, exit the polling mode */ 1750 /* If budget not fully consumed, exit the polling mode */
1751 if (work_done < budget) { 1751 if (work_done < budget) {
1752 netif_rx_complete(napi); 1752 napi_complete(napi);
1753 if (!test_bit(__IXGB_DOWN, &adapter->flags)) 1753 if (!test_bit(__IXGB_DOWN, &adapter->flags))
1754 ixgb_irq_enable(adapter); 1754 ixgb_irq_enable(adapter);
1755 } 1755 }
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index d2f4d5f508b7..7489094bbbc8 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1015,7 +1015,7 @@ static irqreturn_t ixgbe_msix_clean_rx(int irq, void *data)
1015 rx_ring = &(adapter->rx_ring[r_idx]); 1015 rx_ring = &(adapter->rx_ring[r_idx]);
1016 /* disable interrupts on this vector only */ 1016 /* disable interrupts on this vector only */
1017 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, rx_ring->v_idx); 1017 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, rx_ring->v_idx);
1018 netif_rx_schedule(&q_vector->napi); 1018 napi_schedule(&q_vector->napi);
1019 1019
1020 return IRQ_HANDLED; 1020 return IRQ_HANDLED;
1021} 1021}
@@ -1056,7 +1056,7 @@ static int ixgbe_clean_rxonly(struct napi_struct *napi, int budget)
1056 1056
1057 /* If all Rx work done, exit the polling mode */ 1057 /* If all Rx work done, exit the polling mode */
1058 if (work_done < budget) { 1058 if (work_done < budget) {
1059 netif_rx_complete(napi); 1059 napi_complete(napi);
1060 if (adapter->itr_setting & 3) 1060 if (adapter->itr_setting & 3)
1061 ixgbe_set_itr_msix(q_vector); 1061 ixgbe_set_itr_msix(q_vector);
1062 if (!test_bit(__IXGBE_DOWN, &adapter->state)) 1062 if (!test_bit(__IXGBE_DOWN, &adapter->state))
@@ -1105,7 +1105,7 @@ static int ixgbe_clean_rxonly_many(struct napi_struct *napi, int budget)
1105 rx_ring = &(adapter->rx_ring[r_idx]); 1105 rx_ring = &(adapter->rx_ring[r_idx]);
1106 /* If all Rx work done, exit the polling mode */ 1106 /* If all Rx work done, exit the polling mode */
1107 if (work_done < budget) { 1107 if (work_done < budget) {
1108 netif_rx_complete(napi); 1108 napi_complete(napi);
1109 if (adapter->itr_setting & 3) 1109 if (adapter->itr_setting & 3)
1110 ixgbe_set_itr_msix(q_vector); 1110 ixgbe_set_itr_msix(q_vector);
1111 if (!test_bit(__IXGBE_DOWN, &adapter->state)) 1111 if (!test_bit(__IXGBE_DOWN, &adapter->state))
@@ -1381,13 +1381,13 @@ static irqreturn_t ixgbe_intr(int irq, void *data)
1381 1381
1382 ixgbe_check_fan_failure(adapter, eicr); 1382 ixgbe_check_fan_failure(adapter, eicr);
1383 1383
1384 if (netif_rx_schedule_prep(&adapter->q_vector[0].napi)) { 1384 if (napi_schedule_prep(&adapter->q_vector[0].napi)) {
1385 adapter->tx_ring[0].total_packets = 0; 1385 adapter->tx_ring[0].total_packets = 0;
1386 adapter->tx_ring[0].total_bytes = 0; 1386 adapter->tx_ring[0].total_bytes = 0;
1387 adapter->rx_ring[0].total_packets = 0; 1387 adapter->rx_ring[0].total_packets = 0;
1388 adapter->rx_ring[0].total_bytes = 0; 1388 adapter->rx_ring[0].total_bytes = 0;
1389 /* would disable interrupts here but EIAM disabled it */ 1389 /* would disable interrupts here but EIAM disabled it */
1390 __netif_rx_schedule(&adapter->q_vector[0].napi); 1390 __napi_schedule(&adapter->q_vector[0].napi);
1391 } 1391 }
1392 1392
1393 return IRQ_HANDLED; 1393 return IRQ_HANDLED;
@@ -2317,7 +2317,7 @@ static int ixgbe_poll(struct napi_struct *napi, int budget)
2317 2317
2318 /* If budget not fully consumed, exit the polling mode */ 2318 /* If budget not fully consumed, exit the polling mode */
2319 if (work_done < budget) { 2319 if (work_done < budget) {
2320 netif_rx_complete(napi); 2320 napi_complete(napi);
2321 if (adapter->itr_setting & 3) 2321 if (adapter->itr_setting & 3)
2322 ixgbe_set_itr(adapter); 2322 ixgbe_set_itr(adapter);
2323 if (!test_bit(__IXGBE_DOWN, &adapter->state)) 2323 if (!test_bit(__IXGBE_DOWN, &adapter->state))
diff --git a/drivers/net/ixp2000/ixpdev.c b/drivers/net/ixp2000/ixpdev.c
index 014745720560..d3bf2f017cc2 100644
--- a/drivers/net/ixp2000/ixpdev.c
+++ b/drivers/net/ixp2000/ixpdev.c
@@ -141,7 +141,7 @@ static int ixpdev_poll(struct napi_struct *napi, int budget)
141 break; 141 break;
142 } while (ixp2000_reg_read(IXP2000_IRQ_THD_RAW_STATUS_A_0) & 0x00ff); 142 } while (ixp2000_reg_read(IXP2000_IRQ_THD_RAW_STATUS_A_0) & 0x00ff);
143 143
144 netif_rx_complete(napi); 144 napi_complete(napi);
145 ixp2000_reg_write(IXP2000_IRQ_THD_ENABLE_SET_A_0, 0x00ff); 145 ixp2000_reg_write(IXP2000_IRQ_THD_ENABLE_SET_A_0, 0x00ff);
146 146
147 return rx; 147 return rx;
@@ -204,7 +204,7 @@ static irqreturn_t ixpdev_interrupt(int irq, void *dev_id)
204 204
205 ixp2000_reg_wrb(IXP2000_IRQ_THD_ENABLE_CLEAR_A_0, 0x00ff); 205 ixp2000_reg_wrb(IXP2000_IRQ_THD_ENABLE_CLEAR_A_0, 0x00ff);
206 if (likely(napi_schedule_prep(&ip->napi))) { 206 if (likely(napi_schedule_prep(&ip->napi))) {
207 __netif_rx_schedule(&ip->napi); 207 __napi_schedule(&ip->napi);
208 } else { 208 } else {
209 printk(KERN_CRIT "ixp2000: irq while polling!!\n"); 209 printk(KERN_CRIT "ixp2000: irq while polling!!\n");
210 } 210 }
diff --git a/drivers/net/jme.h b/drivers/net/jme.h
index 5154411b5e6b..e321c678b11c 100644
--- a/drivers/net/jme.h
+++ b/drivers/net/jme.h
@@ -398,15 +398,15 @@ struct jme_ring {
398#define JME_NAPI_WEIGHT(w) int w 398#define JME_NAPI_WEIGHT(w) int w
399#define JME_NAPI_WEIGHT_VAL(w) w 399#define JME_NAPI_WEIGHT_VAL(w) w
400#define JME_NAPI_WEIGHT_SET(w, r) 400#define JME_NAPI_WEIGHT_SET(w, r)
401#define JME_RX_COMPLETE(dev, napis) netif_rx_complete(napis) 401#define JME_RX_COMPLETE(dev, napis) napi_complete(napis)
402#define JME_NAPI_ENABLE(priv) napi_enable(&priv->napi); 402#define JME_NAPI_ENABLE(priv) napi_enable(&priv->napi);
403#define JME_NAPI_DISABLE(priv) \ 403#define JME_NAPI_DISABLE(priv) \
404 if (!napi_disable_pending(&priv->napi)) \ 404 if (!napi_disable_pending(&priv->napi)) \
405 napi_disable(&priv->napi); 405 napi_disable(&priv->napi);
406#define JME_RX_SCHEDULE_PREP(priv) \ 406#define JME_RX_SCHEDULE_PREP(priv) \
407 netif_rx_schedule_prep(&priv->napi) 407 napi_schedule_prep(&priv->napi)
408#define JME_RX_SCHEDULE(priv) \ 408#define JME_RX_SCHEDULE(priv) \
409 __netif_rx_schedule(&priv->napi); 409 __napi_schedule(&priv->napi);
410 410
411/* 411/*
412 * Jmac Adapter Private data 412 * Jmac Adapter Private data
diff --git a/drivers/net/korina.c b/drivers/net/korina.c
index 75010cac76ac..38d6649a29c4 100644
--- a/drivers/net/korina.c
+++ b/drivers/net/korina.c
@@ -334,7 +334,7 @@ static irqreturn_t korina_rx_dma_interrupt(int irq, void *dev_id)
334 DMA_STAT_HALT | DMA_STAT_ERR), 334 DMA_STAT_HALT | DMA_STAT_ERR),
335 &lp->rx_dma_regs->dmasm); 335 &lp->rx_dma_regs->dmasm);
336 336
337 netif_rx_schedule(&lp->napi); 337 napi_schedule(&lp->napi);
338 338
339 if (dmas & DMA_STAT_ERR) 339 if (dmas & DMA_STAT_ERR)
340 printk(KERN_ERR DRV_NAME "%s: DMA error\n", dev->name); 340 printk(KERN_ERR DRV_NAME "%s: DMA error\n", dev->name);
@@ -468,7 +468,7 @@ static int korina_poll(struct napi_struct *napi, int budget)
468 468
469 work_done = korina_rx(dev, budget); 469 work_done = korina_rx(dev, budget);
470 if (work_done < budget) { 470 if (work_done < budget) {
471 netif_rx_complete(napi); 471 napi_complete(napi);
472 472
473 writel(readl(&lp->rx_dma_regs->dmasm) & 473 writel(readl(&lp->rx_dma_regs->dmasm) &
474 ~(DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR), 474 ~(DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR),
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index f6c4936e2fa8..dc33d51213d7 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -527,7 +527,7 @@ static int macb_poll(struct napi_struct *napi, int budget)
527 * this function was called last time, and no packets 527 * this function was called last time, and no packets
528 * have been received since. 528 * have been received since.
529 */ 529 */
530 netif_rx_complete(napi); 530 napi_complete(napi);
531 goto out; 531 goto out;
532 } 532 }
533 533
@@ -538,13 +538,13 @@ static int macb_poll(struct napi_struct *napi, int budget)
538 dev_warn(&bp->pdev->dev, 538 dev_warn(&bp->pdev->dev,
539 "No RX buffers complete, status = %02lx\n", 539 "No RX buffers complete, status = %02lx\n",
540 (unsigned long)status); 540 (unsigned long)status);
541 netif_rx_complete(napi); 541 napi_complete(napi);
542 goto out; 542 goto out;
543 } 543 }
544 544
545 work_done = macb_rx(bp, budget); 545 work_done = macb_rx(bp, budget);
546 if (work_done < budget) 546 if (work_done < budget)
547 netif_rx_complete(napi); 547 napi_complete(napi);
548 548
549 /* 549 /*
550 * We've done what we can to clean the buffers. Make sure we 550 * We've done what we can to clean the buffers. Make sure we
@@ -579,7 +579,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
579 } 579 }
580 580
581 if (status & MACB_RX_INT_FLAGS) { 581 if (status & MACB_RX_INT_FLAGS) {
582 if (netif_rx_schedule_prep(&bp->napi)) { 582 if (napi_schedule_prep(&bp->napi)) {
583 /* 583 /*
584 * There's no point taking any more interrupts 584 * There's no point taking any more interrupts
585 * until we have processed the buffers 585 * until we have processed the buffers
@@ -587,7 +587,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
587 macb_writel(bp, IDR, MACB_RX_INT_FLAGS); 587 macb_writel(bp, IDR, MACB_RX_INT_FLAGS);
588 dev_dbg(&bp->pdev->dev, 588 dev_dbg(&bp->pdev->dev,
589 "scheduling RX softirq\n"); 589 "scheduling RX softirq\n");
590 __netif_rx_schedule(&bp->napi); 590 __napi_schedule(&bp->napi);
591 } 591 }
592 } 592 }
593 593
diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index c61b0bdca1a4..ac55ebd2f146 100644
--- a/drivers/net/mlx4/en_rx.c
+++ b/drivers/net/mlx4/en_rx.c
@@ -814,7 +814,7 @@ void mlx4_en_rx_irq(struct mlx4_cq *mcq)
814 struct mlx4_en_priv *priv = netdev_priv(cq->dev); 814 struct mlx4_en_priv *priv = netdev_priv(cq->dev);
815 815
816 if (priv->port_up) 816 if (priv->port_up)
817 netif_rx_schedule(&cq->napi); 817 napi_schedule(&cq->napi);
818 else 818 else
819 mlx4_en_arm_cq(priv, cq); 819 mlx4_en_arm_cq(priv, cq);
820} 820}
@@ -834,7 +834,7 @@ int mlx4_en_poll_rx_cq(struct napi_struct *napi, int budget)
834 INC_PERF_COUNTER(priv->pstats.napi_quota); 834 INC_PERF_COUNTER(priv->pstats.napi_quota);
835 else { 835 else {
836 /* Done for now */ 836 /* Done for now */
837 netif_rx_complete(napi); 837 napi_complete(napi);
838 mlx4_en_arm_cq(priv, cq); 838 mlx4_en_arm_cq(priv, cq);
839 } 839 }
840 return done; 840 return done;
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index e9c1296b267e..2dacb8852dc3 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1514,7 +1514,7 @@ static int myri10ge_poll(struct napi_struct *napi, int budget)
1514 work_done = myri10ge_clean_rx_done(ss, budget); 1514 work_done = myri10ge_clean_rx_done(ss, budget);
1515 1515
1516 if (work_done < budget) { 1516 if (work_done < budget) {
1517 netif_rx_complete(napi); 1517 napi_complete(napi);
1518 put_be32(htonl(3), ss->irq_claim); 1518 put_be32(htonl(3), ss->irq_claim);
1519 } 1519 }
1520 return work_done; 1520 return work_done;
@@ -1532,7 +1532,7 @@ static irqreturn_t myri10ge_intr(int irq, void *arg)
1532 /* an interrupt on a non-zero receive-only slice is implicitly 1532 /* an interrupt on a non-zero receive-only slice is implicitly
1533 * valid since MSI-X irqs are not shared */ 1533 * valid since MSI-X irqs are not shared */
1534 if ((mgp->dev->real_num_tx_queues == 1) && (ss != mgp->ss)) { 1534 if ((mgp->dev->real_num_tx_queues == 1) && (ss != mgp->ss)) {
1535 netif_rx_schedule(&ss->napi); 1535 napi_schedule(&ss->napi);
1536 return (IRQ_HANDLED); 1536 return (IRQ_HANDLED);
1537 } 1537 }
1538 1538
@@ -1543,7 +1543,7 @@ static irqreturn_t myri10ge_intr(int irq, void *arg)
1543 /* low bit indicates receives are present, so schedule 1543 /* low bit indicates receives are present, so schedule
1544 * napi poll handler */ 1544 * napi poll handler */
1545 if (stats->valid & 1) 1545 if (stats->valid & 1)
1546 netif_rx_schedule(&ss->napi); 1546 napi_schedule(&ss->napi);
1547 1547
1548 if (!mgp->msi_enabled && !mgp->msix_enabled) { 1548 if (!mgp->msi_enabled && !mgp->msix_enabled) {
1549 put_be32(0, mgp->irq_deassert); 1549 put_be32(0, mgp->irq_deassert);
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index c5dec54251bf..c23a58624a33 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -2198,10 +2198,10 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)
2198 2198
2199 prefetch(&np->rx_skbuff[np->cur_rx % RX_RING_SIZE]); 2199 prefetch(&np->rx_skbuff[np->cur_rx % RX_RING_SIZE]);
2200 2200
2201 if (netif_rx_schedule_prep(&np->napi)) { 2201 if (napi_schedule_prep(&np->napi)) {
2202 /* Disable interrupts and register for poll */ 2202 /* Disable interrupts and register for poll */
2203 natsemi_irq_disable(dev); 2203 natsemi_irq_disable(dev);
2204 __netif_rx_schedule(&np->napi); 2204 __napi_schedule(&np->napi);
2205 } else 2205 } else
2206 printk(KERN_WARNING 2206 printk(KERN_WARNING
2207 "%s: Ignoring interrupt, status %#08x, mask %#08x.\n", 2207 "%s: Ignoring interrupt, status %#08x, mask %#08x.\n",
@@ -2253,7 +2253,7 @@ static int natsemi_poll(struct napi_struct *napi, int budget)
2253 np->intr_status = readl(ioaddr + IntrStatus); 2253 np->intr_status = readl(ioaddr + IntrStatus);
2254 } while (np->intr_status); 2254 } while (np->intr_status);
2255 2255
2256 netif_rx_complete(napi); 2256 napi_complete(napi);
2257 2257
2258 /* Reenable interrupts providing nothing is trying to shut 2258 /* Reenable interrupts providing nothing is trying to shut
2259 * the chip down. */ 2259 * the chip down. */
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index d854f07ef4d3..1139e637f5da 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -1631,7 +1631,7 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)
1631 } 1631 }
1632 1632
1633 if ((work_done < budget) && tx_complete) { 1633 if ((work_done < budget) && tx_complete) {
1634 netif_rx_complete(&adapter->napi); 1634 napi_complete(&adapter->napi);
1635 netxen_nic_enable_int(adapter); 1635 netxen_nic_enable_int(adapter);
1636 } 1636 }
1637 1637
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index 0c0b752315ca..4a5a089fa301 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -3669,7 +3669,7 @@ static int niu_poll(struct napi_struct *napi, int budget)
3669 work_done = niu_poll_core(np, lp, budget); 3669 work_done = niu_poll_core(np, lp, budget);
3670 3670
3671 if (work_done < budget) { 3671 if (work_done < budget) {
3672 netif_rx_complete(napi); 3672 napi_complete(napi);
3673 niu_ldg_rearm(np, lp, 1); 3673 niu_ldg_rearm(np, lp, 1);
3674 } 3674 }
3675 return work_done; 3675 return work_done;
@@ -4088,12 +4088,12 @@ static void __niu_fastpath_interrupt(struct niu *np, int ldg, u64 v0)
4088static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp, 4088static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp,
4089 u64 v0, u64 v1, u64 v2) 4089 u64 v0, u64 v1, u64 v2)
4090{ 4090{
4091 if (likely(netif_rx_schedule_prep(&lp->napi))) { 4091 if (likely(napi_schedule_prep(&lp->napi))) {
4092 lp->v0 = v0; 4092 lp->v0 = v0;
4093 lp->v1 = v1; 4093 lp->v1 = v1;
4094 lp->v2 = v2; 4094 lp->v2 = v2;
4095 __niu_fastpath_interrupt(np, lp->ldg_num, v0); 4095 __niu_fastpath_interrupt(np, lp->ldg_num, v0);
4096 __netif_rx_schedule(&lp->napi); 4096 __napi_schedule(&lp->napi);
4097 } 4097 }
4098} 4098}
4099 4099
diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index d0349e7d73ea..5eeb5a87b738 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -970,7 +970,7 @@ static irqreturn_t pasemi_mac_rx_intr(int irq, void *data)
970 if (*chan->status & PAS_STATUS_ERROR) 970 if (*chan->status & PAS_STATUS_ERROR)
971 reg |= PAS_IOB_DMA_RXCH_RESET_DINTC; 971 reg |= PAS_IOB_DMA_RXCH_RESET_DINTC;
972 972
973 netif_rx_schedule(&mac->napi); 973 napi_schedule(&mac->napi);
974 974
975 write_iob_reg(PAS_IOB_DMA_RXCH_RESET(chan->chno), reg); 975 write_iob_reg(PAS_IOB_DMA_RXCH_RESET(chan->chno), reg);
976 976
@@ -1010,7 +1010,7 @@ static irqreturn_t pasemi_mac_tx_intr(int irq, void *data)
1010 1010
1011 mod_timer(&txring->clean_timer, jiffies + (TX_CLEAN_INTERVAL)*2); 1011 mod_timer(&txring->clean_timer, jiffies + (TX_CLEAN_INTERVAL)*2);
1012 1012
1013 netif_rx_schedule(&mac->napi); 1013 napi_schedule(&mac->napi);
1014 1014
1015 if (reg) 1015 if (reg)
1016 write_iob_reg(PAS_IOB_DMA_TXCH_RESET(chan->chno), reg); 1016 write_iob_reg(PAS_IOB_DMA_TXCH_RESET(chan->chno), reg);
@@ -1639,7 +1639,7 @@ static int pasemi_mac_poll(struct napi_struct *napi, int budget)
1639 pkts = pasemi_mac_clean_rx(rx_ring(mac), budget); 1639 pkts = pasemi_mac_clean_rx(rx_ring(mac), budget);
1640 if (pkts < budget) { 1640 if (pkts < budget) {
1641 /* all done, no more packets present */ 1641 /* all done, no more packets present */
1642 netif_rx_complete(napi); 1642 napi_complete(napi);
1643 1643
1644 pasemi_mac_restart_rx_intr(mac); 1644 pasemi_mac_restart_rx_intr(mac);
1645 pasemi_mac_restart_tx_intr(mac); 1645 pasemi_mac_restart_tx_intr(mac);
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index 665a4286da39..80124fac65fa 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -1397,7 +1397,7 @@ static int pcnet32_poll(struct napi_struct *napi, int budget)
1397 if (work_done < budget) { 1397 if (work_done < budget) {
1398 spin_lock_irqsave(&lp->lock, flags); 1398 spin_lock_irqsave(&lp->lock, flags);
1399 1399
1400 __netif_rx_complete(napi); 1400 __napi_complete(napi);
1401 1401
1402 /* clear interrupt masks */ 1402 /* clear interrupt masks */
1403 val = lp->a.read_csr(ioaddr, CSR3); 1403 val = lp->a.read_csr(ioaddr, CSR3);
@@ -2592,14 +2592,14 @@ pcnet32_interrupt(int irq, void *dev_id)
2592 dev->name, csr0); 2592 dev->name, csr0);
2593 /* unlike for the lance, there is no restart needed */ 2593 /* unlike for the lance, there is no restart needed */
2594 } 2594 }
2595 if (netif_rx_schedule_prep(&lp->napi)) { 2595 if (napi_schedule_prep(&lp->napi)) {
2596 u16 val; 2596 u16 val;
2597 /* set interrupt masks */ 2597 /* set interrupt masks */
2598 val = lp->a.read_csr(ioaddr, CSR3); 2598 val = lp->a.read_csr(ioaddr, CSR3);
2599 val |= 0x5f00; 2599 val |= 0x5f00;
2600 lp->a.write_csr(ioaddr, CSR3, val); 2600 lp->a.write_csr(ioaddr, CSR3, val);
2601 mmiowb(); 2601 mmiowb();
2602 __netif_rx_schedule(&lp->napi); 2602 __napi_schedule(&lp->napi);
2603 break; 2603 break;
2604 } 2604 }
2605 csr0 = lp->a.read_csr(ioaddr, CSR0); 2605 csr0 = lp->a.read_csr(ioaddr, CSR0);
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 189ec29ac7a4..8b2823c8dccf 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2292,7 +2292,7 @@ static int ql_poll(struct napi_struct *napi, int budget)
2292 2292
2293 if (tx_cleaned + rx_cleaned != budget) { 2293 if (tx_cleaned + rx_cleaned != budget) {
2294 spin_lock_irqsave(&qdev->hw_lock, hw_flags); 2294 spin_lock_irqsave(&qdev->hw_lock, hw_flags);
2295 __netif_rx_complete(napi); 2295 __napi_complete(napi);
2296 ql_update_small_bufq_prod_index(qdev); 2296 ql_update_small_bufq_prod_index(qdev);
2297 ql_update_lrg_bufq_prod_index(qdev); 2297 ql_update_lrg_bufq_prod_index(qdev);
2298 writel(qdev->rsp_consumer_index, 2298 writel(qdev->rsp_consumer_index,
@@ -2351,8 +2351,8 @@ static irqreturn_t ql3xxx_isr(int irq, void *dev_id)
2351 spin_unlock(&qdev->adapter_lock); 2351 spin_unlock(&qdev->adapter_lock);
2352 } else if (value & ISP_IMR_DISABLE_CMPL_INT) { 2352 } else if (value & ISP_IMR_DISABLE_CMPL_INT) {
2353 ql_disable_interrupts(qdev); 2353 ql_disable_interrupts(qdev);
2354 if (likely(netif_rx_schedule_prep(&qdev->napi))) { 2354 if (likely(napi_schedule_prep(&qdev->napi))) {
2355 __netif_rx_schedule(&qdev->napi); 2355 __napi_schedule(&qdev->napi);
2356 } 2356 }
2357 } else { 2357 } else {
2358 return IRQ_NONE; 2358 return IRQ_NONE;
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 45421c8b6010..16eb9dd85286 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1642,7 +1642,7 @@ static int ql_napi_poll_msix(struct napi_struct *napi, int budget)
1642 rx_ring->cq_id); 1642 rx_ring->cq_id);
1643 1643
1644 if (work_done < budget) { 1644 if (work_done < budget) {
1645 __netif_rx_complete(napi); 1645 __napi_complete(napi);
1646 ql_enable_completion_interrupt(qdev, rx_ring->irq); 1646 ql_enable_completion_interrupt(qdev, rx_ring->irq);
1647 } 1647 }
1648 return work_done; 1648 return work_done;
@@ -1727,7 +1727,7 @@ static irqreturn_t qlge_msix_tx_isr(int irq, void *dev_id)
1727static irqreturn_t qlge_msix_rx_isr(int irq, void *dev_id) 1727static irqreturn_t qlge_msix_rx_isr(int irq, void *dev_id)
1728{ 1728{
1729 struct rx_ring *rx_ring = dev_id; 1729 struct rx_ring *rx_ring = dev_id;
1730 netif_rx_schedule(&rx_ring->napi); 1730 napi_schedule(&rx_ring->napi);
1731 return IRQ_HANDLED; 1731 return IRQ_HANDLED;
1732} 1732}
1733 1733
@@ -1813,7 +1813,7 @@ static irqreturn_t qlge_isr(int irq, void *dev_id)
1813 &rx_ring->rx_work, 1813 &rx_ring->rx_work,
1814 0); 1814 0);
1815 else 1815 else
1816 netif_rx_schedule(&rx_ring->napi); 1816 napi_schedule(&rx_ring->napi);
1817 work_done++; 1817 work_done++;
1818 } 1818 }
1819 } 1819 }
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 72fd9e97c190..cc0f886b0c29 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -677,7 +677,7 @@ static int r6040_poll(struct napi_struct *napi, int budget)
677 work_done = r6040_rx(dev, budget); 677 work_done = r6040_rx(dev, budget);
678 678
679 if (work_done < budget) { 679 if (work_done < budget) {
680 netif_rx_complete(napi); 680 napi_complete(napi);
681 /* Enable RX interrupt */ 681 /* Enable RX interrupt */
682 iowrite16(ioread16(ioaddr + MIER) | RX_INTS, ioaddr + MIER); 682 iowrite16(ioread16(ioaddr + MIER) | RX_INTS, ioaddr + MIER);
683 } 683 }
@@ -714,7 +714,7 @@ static irqreturn_t r6040_interrupt(int irq, void *dev_id)
714 714
715 /* Mask off RX interrupt */ 715 /* Mask off RX interrupt */
716 misr &= ~RX_INTS; 716 misr &= ~RX_INTS;
717 netif_rx_schedule(&lp->napi); 717 napi_schedule(&lp->napi);
718 } 718 }
719 719
720 /* TX interrupt request */ 720 /* TX interrupt request */
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 2c73ca606b35..1c4a980253fe 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -3581,8 +3581,8 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
3581 RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event); 3581 RTL_W16(IntrMask, tp->intr_event & ~tp->napi_event);
3582 tp->intr_mask = ~tp->napi_event; 3582 tp->intr_mask = ~tp->napi_event;
3583 3583
3584 if (likely(netif_rx_schedule_prep(&tp->napi))) 3584 if (likely(napi_schedule_prep(&tp->napi)))
3585 __netif_rx_schedule(&tp->napi); 3585 __napi_schedule(&tp->napi);
3586 else if (netif_msg_intr(tp)) { 3586 else if (netif_msg_intr(tp)) {
3587 printk(KERN_INFO "%s: interrupt %04x in poll\n", 3587 printk(KERN_INFO "%s: interrupt %04x in poll\n",
3588 dev->name, status); 3588 dev->name, status);
@@ -3603,7 +3603,7 @@ static int rtl8169_poll(struct napi_struct *napi, int budget)
3603 rtl8169_tx_interrupt(dev, tp, ioaddr); 3603 rtl8169_tx_interrupt(dev, tp, ioaddr);
3604 3604
3605 if (work_done < budget) { 3605 if (work_done < budget) {
3606 netif_rx_complete(napi); 3606 napi_complete(napi);
3607 tp->intr_mask = 0xffff; 3607 tp->intr_mask = 0xffff;
3608 /* 3608 /*
3609 * 20040426: the barrier is not strictly required but the 3609 * 20040426: the barrier is not strictly required but the
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index f5c57c059bca..2a96a10fd0cf 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -2852,7 +2852,7 @@ static int s2io_poll_msix(struct napi_struct *napi, int budget)
2852 s2io_chk_rx_buffers(nic, ring); 2852 s2io_chk_rx_buffers(nic, ring);
2853 2853
2854 if (pkts_processed < budget_org) { 2854 if (pkts_processed < budget_org) {
2855 netif_rx_complete(napi); 2855 napi_complete(napi);
2856 /*Re Enable MSI-Rx Vector*/ 2856 /*Re Enable MSI-Rx Vector*/
2857 addr = (u8 __iomem *)&bar0->xmsi_mask_reg; 2857 addr = (u8 __iomem *)&bar0->xmsi_mask_reg;
2858 addr += 7 - ring->ring_no; 2858 addr += 7 - ring->ring_no;
@@ -2889,7 +2889,7 @@ static int s2io_poll_inta(struct napi_struct *napi, int budget)
2889 break; 2889 break;
2890 } 2890 }
2891 if (pkts_processed < budget_org) { 2891 if (pkts_processed < budget_org) {
2892 netif_rx_complete(napi); 2892 napi_complete(napi);
2893 /* Re enable the Rx interrupts for the ring */ 2893 /* Re enable the Rx interrupts for the ring */
2894 writeq(0, &bar0->rx_traffic_mask); 2894 writeq(0, &bar0->rx_traffic_mask);
2895 readl(&bar0->rx_traffic_mask); 2895 readl(&bar0->rx_traffic_mask);
@@ -4342,7 +4342,7 @@ static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id)
4342 val8 = (ring->ring_no == 0) ? 0x7f : 0xff; 4342 val8 = (ring->ring_no == 0) ? 0x7f : 0xff;
4343 writeb(val8, addr); 4343 writeb(val8, addr);
4344 val8 = readb(addr); 4344 val8 = readb(addr);
4345 netif_rx_schedule(&ring->napi); 4345 napi_schedule(&ring->napi);
4346 } else { 4346 } else {
4347 rx_intr_handler(ring, 0); 4347 rx_intr_handler(ring, 0);
4348 s2io_chk_rx_buffers(sp, ring); 4348 s2io_chk_rx_buffers(sp, ring);
@@ -4789,7 +4789,7 @@ static irqreturn_t s2io_isr(int irq, void *dev_id)
4789 4789
4790 if (config->napi) { 4790 if (config->napi) {
4791 if (reason & GEN_INTR_RXTRAFFIC) { 4791 if (reason & GEN_INTR_RXTRAFFIC) {
4792 netif_rx_schedule(&sp->napi); 4792 napi_schedule(&sp->napi);
4793 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_mask); 4793 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_mask);
4794 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_int); 4794 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_int);
4795 readl(&bar0->rx_traffic_int); 4795 readl(&bar0->rx_traffic_int);
diff --git a/drivers/net/sb1250-mac.c b/drivers/net/sb1250-mac.c
index 31e38fae017f..3e11c1d6d792 100644
--- a/drivers/net/sb1250-mac.c
+++ b/drivers/net/sb1250-mac.c
@@ -2039,9 +2039,9 @@ static irqreturn_t sbmac_intr(int irq,void *dev_instance)
2039 sbdma_tx_process(sc,&(sc->sbm_txdma), 0); 2039 sbdma_tx_process(sc,&(sc->sbm_txdma), 0);
2040 2040
2041 if (isr & (M_MAC_INT_CHANNEL << S_MAC_RX_CH0)) { 2041 if (isr & (M_MAC_INT_CHANNEL << S_MAC_RX_CH0)) {
2042 if (netif_rx_schedule_prep(&sc->napi)) { 2042 if (napi_schedule_prep(&sc->napi)) {
2043 __raw_writeq(0, sc->sbm_imr); 2043 __raw_writeq(0, sc->sbm_imr);
2044 __netif_rx_schedule(&sc->napi); 2044 __napi_schedule(&sc->napi);
2045 /* Depend on the exit from poll to reenable intr */ 2045 /* Depend on the exit from poll to reenable intr */
2046 } 2046 }
2047 else { 2047 else {
@@ -2667,7 +2667,7 @@ static int sbmac_poll(struct napi_struct *napi, int budget)
2667 sbdma_tx_process(sc, &(sc->sbm_txdma), 1); 2667 sbdma_tx_process(sc, &(sc->sbm_txdma), 1);
2668 2668
2669 if (work_done < budget) { 2669 if (work_done < budget) {
2670 netif_rx_complete(napi); 2670 napi_complete(napi);
2671 2671
2672#ifdef CONFIG_SBMAC_COALESCE 2672#ifdef CONFIG_SBMAC_COALESCE
2673 __raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) | 2673 __raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) |
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
index 7673fd92eaf5..77aca5d67b57 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -225,11 +225,11 @@ static int efx_poll(struct napi_struct *napi, int budget)
225 225
226 if (rx_packets < budget) { 226 if (rx_packets < budget) {
227 /* There is no race here; although napi_disable() will 227 /* There is no race here; although napi_disable() will
228 * only wait for netif_rx_complete(), this isn't a problem 228 * only wait for napi_complete(), this isn't a problem
229 * since efx_channel_processed() will have no effect if 229 * since efx_channel_processed() will have no effect if
230 * interrupts have already been disabled. 230 * interrupts have already been disabled.
231 */ 231 */
232 netif_rx_complete(napi); 232 napi_complete(napi);
233 efx_channel_processed(channel); 233 efx_channel_processed(channel);
234 } 234 }
235 235
diff --git a/drivers/net/sfc/efx.h b/drivers/net/sfc/efx.h
index 0dd7a532c78a..fb1ac0e63c0b 100644
--- a/drivers/net/sfc/efx.h
+++ b/drivers/net/sfc/efx.h
@@ -77,7 +77,7 @@ static inline void efx_schedule_channel(struct efx_channel *channel)
77 channel->channel, raw_smp_processor_id()); 77 channel->channel, raw_smp_processor_id());
78 channel->work_pending = true; 78 channel->work_pending = true;
79 79
80 netif_rx_schedule(&channel->napi_str); 80 napi_schedule(&channel->napi_str);
81} 81}
82 82
83#endif /* EFX_EFX_H */ 83#endif /* EFX_EFX_H */
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index c9dbb06f8c94..952d37ffee51 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3214,7 +3214,7 @@ static int skge_poll(struct napi_struct *napi, int to_do)
3214 unsigned long flags; 3214 unsigned long flags;
3215 3215
3216 spin_lock_irqsave(&hw->hw_lock, flags); 3216 spin_lock_irqsave(&hw->hw_lock, flags);
3217 __netif_rx_complete(napi); 3217 __napi_complete(napi);
3218 hw->intr_mask |= napimask[skge->port]; 3218 hw->intr_mask |= napimask[skge->port];
3219 skge_write32(hw, B0_IMSK, hw->intr_mask); 3219 skge_write32(hw, B0_IMSK, hw->intr_mask);
3220 skge_read32(hw, B0_IMSK); 3220 skge_read32(hw, B0_IMSK);
@@ -3377,7 +3377,7 @@ static irqreturn_t skge_intr(int irq, void *dev_id)
3377 if (status & (IS_XA1_F|IS_R1_F)) { 3377 if (status & (IS_XA1_F|IS_R1_F)) {
3378 struct skge_port *skge = netdev_priv(hw->dev[0]); 3378 struct skge_port *skge = netdev_priv(hw->dev[0]);
3379 hw->intr_mask &= ~(IS_XA1_F|IS_R1_F); 3379 hw->intr_mask &= ~(IS_XA1_F|IS_R1_F);
3380 netif_rx_schedule(&skge->napi); 3380 napi_schedule(&skge->napi);
3381 } 3381 }
3382 3382
3383 if (status & IS_PA_TO_TX1) 3383 if (status & IS_PA_TO_TX1)
@@ -3397,7 +3397,7 @@ static irqreturn_t skge_intr(int irq, void *dev_id)
3397 3397
3398 if (status & (IS_XA2_F|IS_R2_F)) { 3398 if (status & (IS_XA2_F|IS_R2_F)) {
3399 hw->intr_mask &= ~(IS_XA2_F|IS_R2_F); 3399 hw->intr_mask &= ~(IS_XA2_F|IS_R2_F);
3400 netif_rx_schedule(&skge->napi); 3400 napi_schedule(&skge->napi);
3401 } 3401 }
3402 3402
3403 if (status & IS_PA_TO_RX2) { 3403 if (status & IS_PA_TO_RX2) {
diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
index f513bdf1c887..d271ae39c6f3 100644
--- a/drivers/net/smsc911x.c
+++ b/drivers/net/smsc911x.c
@@ -984,7 +984,7 @@ static int smsc911x_poll(struct napi_struct *napi, int budget)
984 /* We processed all packets available. Tell NAPI it can 984 /* We processed all packets available. Tell NAPI it can
985 * stop polling then re-enable rx interrupts */ 985 * stop polling then re-enable rx interrupts */
986 smsc911x_reg_write(pdata, INT_STS, INT_STS_RSFL_); 986 smsc911x_reg_write(pdata, INT_STS, INT_STS_RSFL_);
987 netif_rx_complete(napi); 987 napi_complete(napi);
988 temp = smsc911x_reg_read(pdata, INT_EN); 988 temp = smsc911x_reg_read(pdata, INT_EN);
989 temp |= INT_EN_RSFL_EN_; 989 temp |= INT_EN_RSFL_EN_;
990 smsc911x_reg_write(pdata, INT_EN, temp); 990 smsc911x_reg_write(pdata, INT_EN, temp);
@@ -1485,16 +1485,16 @@ static irqreturn_t smsc911x_irqhandler(int irq, void *dev_id)
1485 } 1485 }
1486 1486
1487 if (likely(intsts & inten & INT_STS_RSFL_)) { 1487 if (likely(intsts & inten & INT_STS_RSFL_)) {
1488 if (likely(netif_rx_schedule_prep(&pdata->napi))) { 1488 if (likely(napi_schedule_prep(&pdata->napi))) {
1489 /* Disable Rx interrupts */ 1489 /* Disable Rx interrupts */
1490 temp = smsc911x_reg_read(pdata, INT_EN); 1490 temp = smsc911x_reg_read(pdata, INT_EN);
1491 temp &= (~INT_EN_RSFL_EN_); 1491 temp &= (~INT_EN_RSFL_EN_);
1492 smsc911x_reg_write(pdata, INT_EN, temp); 1492 smsc911x_reg_write(pdata, INT_EN, temp);
1493 /* Schedule a NAPI poll */ 1493 /* Schedule a NAPI poll */
1494 __netif_rx_schedule(&pdata->napi); 1494 __napi_schedule(&pdata->napi);
1495 } else { 1495 } else {
1496 SMSC_WARNING(RX_ERR, 1496 SMSC_WARNING(RX_ERR,
1497 "netif_rx_schedule_prep failed"); 1497 "napi_schedule_prep failed");
1498 } 1498 }
1499 serviced = IRQ_HANDLED; 1499 serviced = IRQ_HANDLED;
1500 } 1500 }
diff --git a/drivers/net/smsc9420.c b/drivers/net/smsc9420.c
index c14a4c6452c7..79f4c228b030 100644
--- a/drivers/net/smsc9420.c
+++ b/drivers/net/smsc9420.c
@@ -666,7 +666,7 @@ static irqreturn_t smsc9420_isr(int irq, void *dev_id)
666 smsc9420_pci_flush_write(pd); 666 smsc9420_pci_flush_write(pd);
667 667
668 ints_to_clear |= (DMAC_STS_RX_ | DMAC_STS_NIS_); 668 ints_to_clear |= (DMAC_STS_RX_ | DMAC_STS_NIS_);
669 netif_rx_schedule(&pd->napi); 669 napi_schedule(&pd->napi);
670 } 670 }
671 671
672 if (ints_to_clear) 672 if (ints_to_clear)
@@ -889,7 +889,7 @@ static int smsc9420_rx_poll(struct napi_struct *napi, int budget)
889 smsc9420_pci_flush_write(pd); 889 smsc9420_pci_flush_write(pd);
890 890
891 if (work_done < budget) { 891 if (work_done < budget) {
892 netif_rx_complete(&pd->napi); 892 napi_complete(&pd->napi);
893 893
894 /* re-enable RX DMA interrupts */ 894 /* re-enable RX DMA interrupts */
895 dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA); 895 dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA);
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 88d2c67788df..7f6b4a4052ee 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1301,7 +1301,7 @@ static int spider_net_poll(struct napi_struct *napi, int budget)
1301 /* if all packets are in the stack, enable interrupts and return 0 */ 1301 /* if all packets are in the stack, enable interrupts and return 0 */
1302 /* if not, return 1 */ 1302 /* if not, return 1 */
1303 if (packets_done < budget) { 1303 if (packets_done < budget) {
1304 netif_rx_complete(napi); 1304 napi_complete(napi);
1305 spider_net_rx_irq_on(card); 1305 spider_net_rx_irq_on(card);
1306 card->ignore_rx_ramfull = 0; 1306 card->ignore_rx_ramfull = 0;
1307 } 1307 }
@@ -1528,7 +1528,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg,
1528 spider_net_refill_rx_chain(card); 1528 spider_net_refill_rx_chain(card);
1529 spider_net_enable_rxdmac(card); 1529 spider_net_enable_rxdmac(card);
1530 card->num_rx_ints ++; 1530 card->num_rx_ints ++;
1531 netif_rx_schedule(&card->napi); 1531 napi_schedule(&card->napi);
1532 } 1532 }
1533 show_error = 0; 1533 show_error = 0;
1534 break; 1534 break;
@@ -1548,7 +1548,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg,
1548 spider_net_refill_rx_chain(card); 1548 spider_net_refill_rx_chain(card);
1549 spider_net_enable_rxdmac(card); 1549 spider_net_enable_rxdmac(card);
1550 card->num_rx_ints ++; 1550 card->num_rx_ints ++;
1551 netif_rx_schedule(&card->napi); 1551 napi_schedule(&card->napi);
1552 show_error = 0; 1552 show_error = 0;
1553 break; 1553 break;
1554 1554
@@ -1562,7 +1562,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg,
1562 spider_net_refill_rx_chain(card); 1562 spider_net_refill_rx_chain(card);
1563 spider_net_enable_rxdmac(card); 1563 spider_net_enable_rxdmac(card);
1564 card->num_rx_ints ++; 1564 card->num_rx_ints ++;
1565 netif_rx_schedule(&card->napi); 1565 napi_schedule(&card->napi);
1566 show_error = 0; 1566 show_error = 0;
1567 break; 1567 break;
1568 1568
@@ -1656,11 +1656,11 @@ spider_net_interrupt(int irq, void *ptr)
1656 1656
1657 if (status_reg & SPIDER_NET_RXINT ) { 1657 if (status_reg & SPIDER_NET_RXINT ) {
1658 spider_net_rx_irq_off(card); 1658 spider_net_rx_irq_off(card);
1659 netif_rx_schedule(&card->napi); 1659 napi_schedule(&card->napi);
1660 card->num_rx_ints ++; 1660 card->num_rx_ints ++;
1661 } 1661 }
1662 if (status_reg & SPIDER_NET_TXINT) 1662 if (status_reg & SPIDER_NET_TXINT)
1663 netif_rx_schedule(&card->napi); 1663 napi_schedule(&card->napi);
1664 1664
1665 if (status_reg & SPIDER_NET_LINKINT) 1665 if (status_reg & SPIDER_NET_LINKINT)
1666 spider_net_link_reset(netdev); 1666 spider_net_link_reset(netdev);
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index da3a76b18eff..98fe79515bab 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -1342,8 +1342,8 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)
1342 if (intr_status & (IntrRxDone | IntrRxEmpty)) { 1342 if (intr_status & (IntrRxDone | IntrRxEmpty)) {
1343 u32 enable; 1343 u32 enable;
1344 1344
1345 if (likely(netif_rx_schedule_prep(&np->napi))) { 1345 if (likely(napi_schedule_prep(&np->napi))) {
1346 __netif_rx_schedule(&np->napi); 1346 __napi_schedule(&np->napi);
1347 enable = readl(ioaddr + IntrEnable); 1347 enable = readl(ioaddr + IntrEnable);
1348 enable &= ~(IntrRxDone | IntrRxEmpty); 1348 enable &= ~(IntrRxDone | IntrRxEmpty);
1349 writel(enable, ioaddr + IntrEnable); 1349 writel(enable, ioaddr + IntrEnable);
@@ -1587,7 +1587,7 @@ static int netdev_poll(struct napi_struct *napi, int budget)
1587 intr_status = readl(ioaddr + IntrStatus); 1587 intr_status = readl(ioaddr + IntrStatus);
1588 } while (intr_status & (IntrRxDone | IntrRxEmpty)); 1588 } while (intr_status & (IntrRxDone | IntrRxEmpty));
1589 1589
1590 netif_rx_complete(napi); 1590 napi_complete(napi);
1591 intr_status = readl(ioaddr + IntrEnable); 1591 intr_status = readl(ioaddr + IntrEnable);
1592 intr_status |= IntrRxDone | IntrRxEmpty; 1592 intr_status |= IntrRxDone | IntrRxEmpty;
1593 writel(intr_status, ioaddr + IntrEnable); 1593 writel(intr_status, ioaddr + IntrEnable);
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 86c765d83de1..4942059109f3 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -921,7 +921,7 @@ static int gem_poll(struct napi_struct *napi, int budget)
921 gp->status = readl(gp->regs + GREG_STAT); 921 gp->status = readl(gp->regs + GREG_STAT);
922 } while (gp->status & GREG_STAT_NAPI); 922 } while (gp->status & GREG_STAT_NAPI);
923 923
924 __netif_rx_complete(napi); 924 __napi_complete(napi);
925 gem_enable_ints(gp); 925 gem_enable_ints(gp);
926 926
927 spin_unlock_irqrestore(&gp->lock, flags); 927 spin_unlock_irqrestore(&gp->lock, flags);
@@ -944,7 +944,7 @@ static irqreturn_t gem_interrupt(int irq, void *dev_id)
944 944
945 spin_lock_irqsave(&gp->lock, flags); 945 spin_lock_irqsave(&gp->lock, flags);
946 946
947 if (netif_rx_schedule_prep(&gp->napi)) { 947 if (napi_schedule_prep(&gp->napi)) {
948 u32 gem_status = readl(gp->regs + GREG_STAT); 948 u32 gem_status = readl(gp->regs + GREG_STAT);
949 949
950 if (gem_status == 0) { 950 if (gem_status == 0) {
@@ -954,7 +954,7 @@ static irqreturn_t gem_interrupt(int irq, void *dev_id)
954 } 954 }
955 gp->status = gem_status; 955 gp->status = gem_status;
956 gem_disable_ints(gp); 956 gem_disable_ints(gp);
957 __netif_rx_schedule(&gp->napi); 957 __napi_schedule(&gp->napi);
958 } 958 }
959 959
960 spin_unlock_irqrestore(&gp->lock, flags); 960 spin_unlock_irqrestore(&gp->lock, flags);
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index bcd0e60cbda9..f42c67e93bf4 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -1609,8 +1609,8 @@ static irqreturn_t tc35815_interrupt(int irq, void *dev_id)
1609 if (!(dmactl & DMA_IntMask)) { 1609 if (!(dmactl & DMA_IntMask)) {
1610 /* disable interrupts */ 1610 /* disable interrupts */
1611 tc_writel(dmactl | DMA_IntMask, &tr->DMA_Ctl); 1611 tc_writel(dmactl | DMA_IntMask, &tr->DMA_Ctl);
1612 if (netif_rx_schedule_prep(&lp->napi)) 1612 if (napi_schedule_prep(&lp->napi))
1613 __netif_rx_schedule(&lp->napi); 1613 __napi_schedule(&lp->napi);
1614 else { 1614 else {
1615 printk(KERN_ERR "%s: interrupt taken in poll\n", 1615 printk(KERN_ERR "%s: interrupt taken in poll\n",
1616 dev->name); 1616 dev->name);
@@ -1919,7 +1919,7 @@ static int tc35815_poll(struct napi_struct *napi, int budget)
1919 spin_unlock(&lp->lock); 1919 spin_unlock(&lp->lock);
1920 1920
1921 if (received < budget) { 1921 if (received < budget) {
1922 netif_rx_complete(napi); 1922 napi_complete(napi);
1923 /* enable interrupts */ 1923 /* enable interrupts */
1924 tc_writel(tc_readl(&tr->DMA_Ctl) & ~DMA_IntMask, &tr->DMA_Ctl); 1924 tc_writel(tc_readl(&tr->DMA_Ctl) & ~DMA_IntMask, &tr->DMA_Ctl);
1925 } 1925 }
diff --git a/drivers/net/tehuti.c b/drivers/net/tehuti.c
index a7a4dc4d6313..be9f38f8f0bf 100644
--- a/drivers/net/tehuti.c
+++ b/drivers/net/tehuti.c
@@ -265,8 +265,8 @@ static irqreturn_t bdx_isr_napi(int irq, void *dev)
265 bdx_isr_extra(priv, isr); 265 bdx_isr_extra(priv, isr);
266 266
267 if (isr & (IR_RX_DESC_0 | IR_TX_FREE_0)) { 267 if (isr & (IR_RX_DESC_0 | IR_TX_FREE_0)) {
268 if (likely(netif_rx_schedule_prep(&priv->napi))) { 268 if (likely(napi_schedule_prep(&priv->napi))) {
269 __netif_rx_schedule(&priv->napi); 269 __napi_schedule(&priv->napi);
270 RET(IRQ_HANDLED); 270 RET(IRQ_HANDLED);
271 } else { 271 } else {
272 /* NOTE: we get here if intr has slipped into window 272 /* NOTE: we get here if intr has slipped into window
@@ -302,7 +302,7 @@ static int bdx_poll(struct napi_struct *napi, int budget)
302 * device lock and allow waiting tasks (eg rmmod) to advance) */ 302 * device lock and allow waiting tasks (eg rmmod) to advance) */
303 priv->napi_stop = 0; 303 priv->napi_stop = 0;
304 304
305 netif_rx_complete(napi); 305 napi_complete(napi);
306 bdx_enable_interrupts(priv); 306 bdx_enable_interrupts(priv);
307 } 307 }
308 return work_done; 308 return work_done;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 8b3f84685387..5fa65acb68e5 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -4460,7 +4460,7 @@ static int tg3_poll(struct napi_struct *napi, int budget)
4460 sblk->status &= ~SD_STATUS_UPDATED; 4460 sblk->status &= ~SD_STATUS_UPDATED;
4461 4461
4462 if (likely(!tg3_has_work(tp))) { 4462 if (likely(!tg3_has_work(tp))) {
4463 netif_rx_complete(napi); 4463 napi_complete(napi);
4464 tg3_restart_ints(tp); 4464 tg3_restart_ints(tp);
4465 break; 4465 break;
4466 } 4466 }
@@ -4470,7 +4470,7 @@ static int tg3_poll(struct napi_struct *napi, int budget)
4470 4470
4471tx_recovery: 4471tx_recovery:
4472 /* work_done is guaranteed to be less than budget. */ 4472 /* work_done is guaranteed to be less than budget. */
4473 netif_rx_complete(napi); 4473 napi_complete(napi);
4474 schedule_work(&tp->reset_task); 4474 schedule_work(&tp->reset_task);
4475 return work_done; 4475 return work_done;
4476} 4476}
@@ -4519,7 +4519,7 @@ static irqreturn_t tg3_msi_1shot(int irq, void *dev_id)
4519 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]); 4519 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]);
4520 4520
4521 if (likely(!tg3_irq_sync(tp))) 4521 if (likely(!tg3_irq_sync(tp)))
4522 netif_rx_schedule(&tp->napi); 4522 napi_schedule(&tp->napi);
4523 4523
4524 return IRQ_HANDLED; 4524 return IRQ_HANDLED;
4525} 4525}
@@ -4544,7 +4544,7 @@ static irqreturn_t tg3_msi(int irq, void *dev_id)
4544 */ 4544 */
4545 tw32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001); 4545 tw32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001);
4546 if (likely(!tg3_irq_sync(tp))) 4546 if (likely(!tg3_irq_sync(tp)))
4547 netif_rx_schedule(&tp->napi); 4547 napi_schedule(&tp->napi);
4548 4548
4549 return IRQ_RETVAL(1); 4549 return IRQ_RETVAL(1);
4550} 4550}
@@ -4586,7 +4586,7 @@ static irqreturn_t tg3_interrupt(int irq, void *dev_id)
4586 sblk->status &= ~SD_STATUS_UPDATED; 4586 sblk->status &= ~SD_STATUS_UPDATED;
4587 if (likely(tg3_has_work(tp))) { 4587 if (likely(tg3_has_work(tp))) {
4588 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]); 4588 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]);
4589 netif_rx_schedule(&tp->napi); 4589 napi_schedule(&tp->napi);
4590 } else { 4590 } else {
4591 /* No work, shared interrupt perhaps? re-enable 4591 /* No work, shared interrupt perhaps? re-enable
4592 * interrupts, and flush that PCI write 4592 * interrupts, and flush that PCI write
@@ -4632,7 +4632,7 @@ static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id)
4632 tw32_mailbox_f(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001); 4632 tw32_mailbox_f(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001);
4633 if (tg3_irq_sync(tp)) 4633 if (tg3_irq_sync(tp))
4634 goto out; 4634 goto out;
4635 if (netif_rx_schedule_prep(&tp->napi)) { 4635 if (napi_schedule_prep(&tp->napi)) {
4636 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]); 4636 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]);
4637 /* Update last_tag to mark that this status has been 4637 /* Update last_tag to mark that this status has been
4638 * seen. Because interrupt may be shared, we may be 4638 * seen. Because interrupt may be shared, we may be
@@ -4640,7 +4640,7 @@ static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id)
4640 * if tg3_poll() is not scheduled. 4640 * if tg3_poll() is not scheduled.
4641 */ 4641 */
4642 tp->last_tag = sblk->status_tag; 4642 tp->last_tag = sblk->status_tag;
4643 __netif_rx_schedule(&tp->napi); 4643 __napi_schedule(&tp->napi);
4644 } 4644 }
4645out: 4645out:
4646 return IRQ_RETVAL(handled); 4646 return IRQ_RETVAL(handled);
diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 75461dbd4876..1138782e5611 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -888,7 +888,7 @@ static int tsi108_poll(struct napi_struct *napi, int budget)
888 888
889 if (num_received < budget) { 889 if (num_received < budget) {
890 data->rxpending = 0; 890 data->rxpending = 0;
891 netif_rx_complete(napi); 891 napi_complete(napi);
892 892
893 TSI_WRITE(TSI108_EC_INTMASK, 893 TSI_WRITE(TSI108_EC_INTMASK,
894 TSI_READ(TSI108_EC_INTMASK) 894 TSI_READ(TSI108_EC_INTMASK)
@@ -915,11 +915,11 @@ static void tsi108_rx_int(struct net_device *dev)
915 * 915 *
916 * This can happen if this code races with tsi108_poll(), which masks 916 * This can happen if this code races with tsi108_poll(), which masks
917 * the interrupts after tsi108_irq_one() read the mask, but before 917 * the interrupts after tsi108_irq_one() read the mask, but before
918 * netif_rx_schedule is called. It could also happen due to calls 918 * napi_schedule is called. It could also happen due to calls
919 * from tsi108_check_rxring(). 919 * from tsi108_check_rxring().
920 */ 920 */
921 921
922 if (netif_rx_schedule_prep(&data->napi)) { 922 if (napi_schedule_prep(&data->napi)) {
923 /* Mask, rather than ack, the receive interrupts. The ack 923 /* Mask, rather than ack, the receive interrupts. The ack
924 * will happen in tsi108_poll(). 924 * will happen in tsi108_poll().
925 */ 925 */
@@ -930,7 +930,7 @@ static void tsi108_rx_int(struct net_device *dev)
930 | TSI108_INT_RXTHRESH | 930 | TSI108_INT_RXTHRESH |
931 TSI108_INT_RXOVERRUN | TSI108_INT_RXERROR | 931 TSI108_INT_RXOVERRUN | TSI108_INT_RXERROR |
932 TSI108_INT_RXWAIT); 932 TSI108_INT_RXWAIT);
933 __netif_rx_schedule(&data->napi); 933 __napi_schedule(&data->napi);
934 } else { 934 } else {
935 if (!netif_running(dev)) { 935 if (!netif_running(dev)) {
936 /* This can happen if an interrupt occurs while the 936 /* This can happen if an interrupt occurs while the
diff --git a/drivers/net/tulip/interrupt.c b/drivers/net/tulip/interrupt.c
index 6c3428a37c0b..9f946d421088 100644
--- a/drivers/net/tulip/interrupt.c
+++ b/drivers/net/tulip/interrupt.c
@@ -103,7 +103,7 @@ void oom_timer(unsigned long data)
103{ 103{
104 struct net_device *dev = (struct net_device *)data; 104 struct net_device *dev = (struct net_device *)data;
105 struct tulip_private *tp = netdev_priv(dev); 105 struct tulip_private *tp = netdev_priv(dev);
106 netif_rx_schedule(&tp->napi); 106 napi_schedule(&tp->napi);
107} 107}
108 108
109int tulip_poll(struct napi_struct *napi, int budget) 109int tulip_poll(struct napi_struct *napi, int budget)
@@ -300,7 +300,7 @@ int tulip_poll(struct napi_struct *napi, int budget)
300 300
301 /* Remove us from polling list and enable RX intr. */ 301 /* Remove us from polling list and enable RX intr. */
302 302
303 netif_rx_complete(napi); 303 napi_complete(napi);
304 iowrite32(tulip_tbl[tp->chip_id].valid_intrs, tp->base_addr+CSR7); 304 iowrite32(tulip_tbl[tp->chip_id].valid_intrs, tp->base_addr+CSR7);
305 305
306 /* The last op happens after poll completion. Which means the following: 306 /* The last op happens after poll completion. Which means the following:
@@ -333,10 +333,10 @@ int tulip_poll(struct napi_struct *napi, int budget)
333 333
334 /* Think: timer_pending() was an explicit signature of bug. 334 /* Think: timer_pending() was an explicit signature of bug.
335 * Timer can be pending now but fired and completed 335 * Timer can be pending now but fired and completed
336 * before we did netif_rx_complete(). See? We would lose it. */ 336 * before we did napi_complete(). See? We would lose it. */
337 337
338 /* remove ourselves from the polling list */ 338 /* remove ourselves from the polling list */
339 netif_rx_complete(napi); 339 napi_complete(napi);
340 340
341 return work_done; 341 return work_done;
342} 342}
@@ -519,7 +519,7 @@ irqreturn_t tulip_interrupt(int irq, void *dev_instance)
519 rxd++; 519 rxd++;
520 /* Mask RX intrs and add the device to poll list. */ 520 /* Mask RX intrs and add the device to poll list. */
521 iowrite32(tulip_tbl[tp->chip_id].valid_intrs&~RxPollInt, ioaddr + CSR7); 521 iowrite32(tulip_tbl[tp->chip_id].valid_intrs&~RxPollInt, ioaddr + CSR7);
522 netif_rx_schedule(&tp->napi); 522 napi_schedule(&tp->napi);
523 523
524 if (!(csr5&~(AbnormalIntr|NormalIntr|RxPollInt|TPLnkPass))) 524 if (!(csr5&~(AbnormalIntr|NormalIntr|RxPollInt|TPLnkPass)))
525 break; 525 break;
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 3af9a9516ccb..dcff5ade6d08 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1783,7 +1783,7 @@ typhoon_poll(struct napi_struct *napi, int budget)
1783 } 1783 }
1784 1784
1785 if (work_done < budget) { 1785 if (work_done < budget) {
1786 netif_rx_complete(napi); 1786 napi_complete(napi);
1787 iowrite32(TYPHOON_INTR_NONE, 1787 iowrite32(TYPHOON_INTR_NONE,
1788 tp->ioaddr + TYPHOON_REG_INTR_MASK); 1788 tp->ioaddr + TYPHOON_REG_INTR_MASK);
1789 typhoon_post_pci_writes(tp->ioaddr); 1789 typhoon_post_pci_writes(tp->ioaddr);
@@ -1806,10 +1806,10 @@ typhoon_interrupt(int irq, void *dev_instance)
1806 1806
1807 iowrite32(intr_status, ioaddr + TYPHOON_REG_INTR_STATUS); 1807 iowrite32(intr_status, ioaddr + TYPHOON_REG_INTR_STATUS);
1808 1808
1809 if (netif_rx_schedule_prep(&tp->napi)) { 1809 if (napi_schedule_prep(&tp->napi)) {
1810 iowrite32(TYPHOON_INTR_ALL, ioaddr + TYPHOON_REG_INTR_MASK); 1810 iowrite32(TYPHOON_INTR_ALL, ioaddr + TYPHOON_REG_INTR_MASK);
1811 typhoon_post_pci_writes(ioaddr); 1811 typhoon_post_pci_writes(ioaddr);
1812 __netif_rx_schedule(&tp->napi); 1812 __napi_schedule(&tp->napi);
1813 } else { 1813 } else {
1814 printk(KERN_ERR "%s: Error, poll already scheduled\n", 1814 printk(KERN_ERR "%s: Error, poll already scheduled\n",
1815 dev->name); 1815 dev->name);
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 11441225bf41..6def6f826a54 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3251,7 +3251,7 @@ static int ucc_geth_poll(struct napi_struct *napi, int budget)
3251 howmany += ucc_geth_rx(ugeth, i, budget - howmany); 3251 howmany += ucc_geth_rx(ugeth, i, budget - howmany);
3252 3252
3253 if (howmany < budget) { 3253 if (howmany < budget) {
3254 netif_rx_complete(napi); 3254 napi_complete(napi);
3255 setbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS); 3255 setbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS);
3256 } 3256 }
3257 3257
@@ -3282,10 +3282,10 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
3282 3282
3283 /* check for receive events that require processing */ 3283 /* check for receive events that require processing */
3284 if (ucce & UCCE_RX_EVENTS) { 3284 if (ucce & UCCE_RX_EVENTS) {
3285 if (netif_rx_schedule_prep(&ugeth->napi)) { 3285 if (napi_schedule_prep(&ugeth->napi)) {
3286 uccm &= ~UCCE_RX_EVENTS; 3286 uccm &= ~UCCE_RX_EVENTS;
3287 out_be32(uccf->p_uccm, uccm); 3287 out_be32(uccf->p_uccm, uccm);
3288 __netif_rx_schedule(&ugeth->napi); 3288 __napi_schedule(&ugeth->napi);
3289 } 3289 }
3290 } 3290 }
3291 3291
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index 3b8e63254277..4671436ecf0e 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -589,7 +589,7 @@ static int rhine_napipoll(struct napi_struct *napi, int budget)
589 work_done = rhine_rx(dev, budget); 589 work_done = rhine_rx(dev, budget);
590 590
591 if (work_done < budget) { 591 if (work_done < budget) {
592 netif_rx_complete(napi); 592 napi_complete(napi);
593 593
594 iowrite16(IntrRxDone | IntrRxErr | IntrRxEmpty| IntrRxOverflow | 594 iowrite16(IntrRxDone | IntrRxErr | IntrRxEmpty| IntrRxOverflow |
595 IntrRxDropped | IntrRxNoBuf | IntrTxAborted | 595 IntrRxDropped | IntrRxNoBuf | IntrTxAborted |
@@ -1319,7 +1319,7 @@ static irqreturn_t rhine_interrupt(int irq, void *dev_instance)
1319 IntrPCIErr | IntrStatsMax | IntrLinkChange, 1319 IntrPCIErr | IntrStatsMax | IntrLinkChange,
1320 ioaddr + IntrEnable); 1320 ioaddr + IntrEnable);
1321 1321
1322 netif_rx_schedule(&rp->napi); 1322 napi_schedule(&rp->napi);
1323 } 1323 }
1324 1324
1325 if (intr_status & (IntrTxErrSummary | IntrTxDone)) { 1325 if (intr_status & (IntrTxErrSummary | IntrTxDone)) {
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 43f6523c40be..30ae6d9a12af 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -374,9 +374,9 @@ static void skb_recv_done(struct virtqueue *rvq)
374{ 374{
375 struct virtnet_info *vi = rvq->vdev->priv; 375 struct virtnet_info *vi = rvq->vdev->priv;
376 /* Schedule NAPI, Suppress further interrupts if successful. */ 376 /* Schedule NAPI, Suppress further interrupts if successful. */
377 if (netif_rx_schedule_prep(&vi->napi)) { 377 if (napi_schedule_prep(&vi->napi)) {
378 rvq->vq_ops->disable_cb(rvq); 378 rvq->vq_ops->disable_cb(rvq);
379 __netif_rx_schedule(&vi->napi); 379 __napi_schedule(&vi->napi);
380 } 380 }
381} 381}
382 382
@@ -402,11 +402,11 @@ again:
402 402
403 /* Out of packets? */ 403 /* Out of packets? */
404 if (received < budget) { 404 if (received < budget) {
405 netif_rx_complete(napi); 405 napi_complete(napi);
406 if (unlikely(!vi->rvq->vq_ops->enable_cb(vi->rvq)) 406 if (unlikely(!vi->rvq->vq_ops->enable_cb(vi->rvq))
407 && napi_schedule_prep(napi)) { 407 && napi_schedule_prep(napi)) {
408 vi->rvq->vq_ops->disable_cb(vi->rvq); 408 vi->rvq->vq_ops->disable_cb(vi->rvq);
409 __netif_rx_schedule(napi); 409 __napi_schedule(napi);
410 goto again; 410 goto again;
411 } 411 }
412 } 412 }
@@ -580,9 +580,9 @@ static int virtnet_open(struct net_device *dev)
580 * won't get another interrupt, so process any outstanding packets 580 * won't get another interrupt, so process any outstanding packets
581 * now. virtnet_poll wants re-enable the queue, so we disable here. 581 * now. virtnet_poll wants re-enable the queue, so we disable here.
582 * We synchronize against interrupts via NAPI_STATE_SCHED */ 582 * We synchronize against interrupts via NAPI_STATE_SCHED */
583 if (netif_rx_schedule_prep(&vi->napi)) { 583 if (napi_schedule_prep(&vi->napi)) {
584 vi->rvq->vq_ops->disable_cb(vi->rvq); 584 vi->rvq->vq_ops->disable_cb(vi->rvq);
585 __netif_rx_schedule(&vi->napi); 585 __napi_schedule(&vi->napi);
586 } 586 }
587 return 0; 587 return 0;
588} 588}
diff --git a/drivers/net/wan/hd64572.c b/drivers/net/wan/hd64572.c
index 08b3536944fe..497b003d7239 100644
--- a/drivers/net/wan/hd64572.c
+++ b/drivers/net/wan/hd64572.c
@@ -341,7 +341,7 @@ static int sca_poll(struct napi_struct *napi, int budget)
341 received = sca_rx_done(port, budget); 341 received = sca_rx_done(port, budget);
342 342
343 if (received < budget) { 343 if (received < budget) {
344 netif_rx_complete(napi); 344 napi_complete(napi);
345 enable_intr(port); 345 enable_intr(port);
346 } 346 }
347 347
@@ -359,7 +359,7 @@ static irqreturn_t sca_intr(int irq, void *dev_id)
359 if (port && (isr0 & (i ? 0x08002200 : 0x00080022))) { 359 if (port && (isr0 & (i ? 0x08002200 : 0x00080022))) {
360 handled = 1; 360 handled = 1;
361 disable_intr(port); 361 disable_intr(port);
362 netif_rx_schedule(&port->napi); 362 napi_schedule(&port->napi);
363 } 363 }
364 } 364 }
365 365
diff --git a/drivers/net/wan/ixp4xx_hss.c b/drivers/net/wan/ixp4xx_hss.c
index 7e8bbba2cc1b..3bf7d3f447db 100644
--- a/drivers/net/wan/ixp4xx_hss.c
+++ b/drivers/net/wan/ixp4xx_hss.c
@@ -622,7 +622,7 @@ static void hss_hdlc_rx_irq(void *pdev)
622 printk(KERN_DEBUG "%s: hss_hdlc_rx_irq\n", dev->name); 622 printk(KERN_DEBUG "%s: hss_hdlc_rx_irq\n", dev->name);
623#endif 623#endif
624 qmgr_disable_irq(queue_ids[port->id].rx); 624 qmgr_disable_irq(queue_ids[port->id].rx);
625 netif_rx_schedule(&port->napi); 625 napi_schedule(&port->napi);
626} 626}
627 627
628static int hss_hdlc_poll(struct napi_struct *napi, int budget) 628static int hss_hdlc_poll(struct napi_struct *napi, int budget)
@@ -649,15 +649,15 @@ static int hss_hdlc_poll(struct napi_struct *napi, int budget)
649 if ((n = queue_get_desc(rxq, port, 0)) < 0) { 649 if ((n = queue_get_desc(rxq, port, 0)) < 0) {
650#if DEBUG_RX 650#if DEBUG_RX
651 printk(KERN_DEBUG "%s: hss_hdlc_poll" 651 printk(KERN_DEBUG "%s: hss_hdlc_poll"
652 " netif_rx_complete\n", dev->name); 652 " napi_complete\n", dev->name);
653#endif 653#endif
654 netif_rx_complete(napi); 654 napi_complete(napi);
655 qmgr_enable_irq(rxq); 655 qmgr_enable_irq(rxq);
656 if (!qmgr_stat_empty(rxq) && 656 if (!qmgr_stat_empty(rxq) &&
657 netif_rx_reschedule(napi)) { 657 napi_reschedule(napi)) {
658#if DEBUG_RX 658#if DEBUG_RX
659 printk(KERN_DEBUG "%s: hss_hdlc_poll" 659 printk(KERN_DEBUG "%s: hss_hdlc_poll"
660 " netif_rx_reschedule succeeded\n", 660 " napi_reschedule succeeded\n",
661 dev->name); 661 dev->name);
662#endif 662#endif
663 qmgr_disable_irq(rxq); 663 qmgr_disable_irq(rxq);
@@ -1069,7 +1069,7 @@ static int hss_hdlc_open(struct net_device *dev)
1069 hss_start_hdlc(port); 1069 hss_start_hdlc(port);
1070 1070
1071 /* we may already have RX data, enables IRQ */ 1071 /* we may already have RX data, enables IRQ */
1072 netif_rx_schedule(&port->napi); 1072 napi_schedule(&port->napi);
1073 return 0; 1073 return 0;
1074 1074
1075err_unlock: 1075err_unlock:
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index cd6184ee08ee..9f102a6535c4 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -196,7 +196,7 @@ static void rx_refill_timeout(unsigned long data)
196{ 196{
197 struct net_device *dev = (struct net_device *)data; 197 struct net_device *dev = (struct net_device *)data;
198 struct netfront_info *np = netdev_priv(dev); 198 struct netfront_info *np = netdev_priv(dev);
199 netif_rx_schedule(&np->napi); 199 napi_schedule(&np->napi);
200} 200}
201 201
202static int netfront_tx_slot_available(struct netfront_info *np) 202static int netfront_tx_slot_available(struct netfront_info *np)
@@ -328,7 +328,7 @@ static int xennet_open(struct net_device *dev)
328 xennet_alloc_rx_buffers(dev); 328 xennet_alloc_rx_buffers(dev);
329 np->rx.sring->rsp_event = np->rx.rsp_cons + 1; 329 np->rx.sring->rsp_event = np->rx.rsp_cons + 1;
330 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx)) 330 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx))
331 netif_rx_schedule(&np->napi); 331 napi_schedule(&np->napi);
332 } 332 }
333 spin_unlock_bh(&np->rx_lock); 333 spin_unlock_bh(&np->rx_lock);
334 334
@@ -979,7 +979,7 @@ err:
979 979
980 RING_FINAL_CHECK_FOR_RESPONSES(&np->rx, more_to_do); 980 RING_FINAL_CHECK_FOR_RESPONSES(&np->rx, more_to_do);
981 if (!more_to_do) 981 if (!more_to_do)
982 __netif_rx_complete(napi); 982 __napi_complete(napi);
983 983
984 local_irq_restore(flags); 984 local_irq_restore(flags);
985 } 985 }
@@ -1317,7 +1317,7 @@ static irqreturn_t xennet_interrupt(int irq, void *dev_id)
1317 xennet_tx_buf_gc(dev); 1317 xennet_tx_buf_gc(dev);
1318 /* Under tx_lock: protects access to rx shared-ring indexes. */ 1318 /* Under tx_lock: protects access to rx shared-ring indexes. */
1319 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx)) 1319 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx))
1320 netif_rx_schedule(&np->napi); 1320 napi_schedule(&np->napi);
1321 } 1321 }
1322 1322
1323 spin_unlock_irqrestore(&np->tx_lock, flags); 1323 spin_unlock_irqrestore(&np->tx_lock, flags);
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index ec54785d34f9..dd8a35b3e8b2 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1574,56 +1574,6 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
1574 return (1 << debug_value) - 1; 1574 return (1 << debug_value) - 1;
1575} 1575}
1576 1576
1577/* Test if receive needs to be scheduled but only if up */
1578static inline int netif_rx_schedule_prep(struct napi_struct *napi)
1579{
1580 return napi_schedule_prep(napi);
1581}
1582
1583/* Add interface to tail of rx poll list. This assumes that _prep has
1584 * already been called and returned 1.
1585 */
1586static inline void __netif_rx_schedule(struct napi_struct *napi)
1587{
1588 __napi_schedule(napi);
1589}
1590
1591/* Try to reschedule poll. Called by irq handler. */
1592
1593static inline void netif_rx_schedule(struct napi_struct *napi)
1594{
1595 if (netif_rx_schedule_prep(napi))
1596 __netif_rx_schedule(napi);
1597}
1598
1599/* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */
1600static inline int netif_rx_reschedule(struct napi_struct *napi)
1601{
1602 if (napi_schedule_prep(napi)) {
1603 __netif_rx_schedule(napi);
1604 return 1;
1605 }
1606 return 0;
1607}
1608
1609/* same as netif_rx_complete, except that local_irq_save(flags)
1610 * has already been issued
1611 */
1612static inline void __netif_rx_complete(struct napi_struct *napi)
1613{
1614 __napi_complete(napi);
1615}
1616
1617/* Remove interface from poll list: it must be in the poll list
1618 * on current cpu. This primitive is called by dev->poll(), when
1619 * it completes the work. The device cannot be out of poll list at this
1620 * moment, it is BUG().
1621 */
1622static inline void netif_rx_complete(struct napi_struct *napi)
1623{
1624 napi_complete(napi);
1625}
1626
1627static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu) 1577static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu)
1628{ 1578{
1629 spin_lock(&txq->_xmit_lock); 1579 spin_lock(&txq->_xmit_lock);