diff options
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 | ||
468 | static void drain_tx_cq(struct net_device *dev) | 468 | static 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 | ||
479 | static int eth_poll(struct napi_struct *napi, int budget) | 479 | static 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) { |
1516 | quit_polling: | 1516 | quit_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 |
9340 | poll_panic: | 9340 | poll_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 |
1766 | static void nv_do_rx_refill(unsigned long data) | 1766 | static 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) | |||
4088 | static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp, | 4088 | static 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) | |||
1727 | static irqreturn_t qlge_msix_rx_isr(int irq, void *dev_id) | 1727 | static 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 | ||
4471 | tx_recovery: | 4471 | tx_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 | } |
4645 | out: | 4645 | out: |
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 | ||
109 | int tulip_poll(struct napi_struct *napi, int budget) | 109 | int 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 | ||
628 | static int hss_hdlc_poll(struct napi_struct *napi, int budget) | 628 | static 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 | ||
1075 | err_unlock: | 1075 | err_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 | ||
202 | static int netfront_tx_slot_available(struct netfront_info *np) | 202 | static 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 */ | ||
1578 | static 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 | */ | ||
1586 | static 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 | |||
1593 | static 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(). */ | ||
1600 | static 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 | */ | ||
1612 | static 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 | */ | ||
1622 | static inline void netif_rx_complete(struct napi_struct *napi) | ||
1623 | { | ||
1624 | napi_complete(napi); | ||
1625 | } | ||
1626 | |||
1627 | static inline void __netif_tx_lock(struct netdev_queue *txq, int cpu) | 1577 | static 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); |