aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.c2
-rw-r--r--drivers/infiniband/hw/nes/nes_nic.c2
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ib.c6
-rw-r--r--drivers/net/8139cp.c6
-rw-r--r--drivers/net/8139too.c6
-rw-r--r--drivers/net/amd8111e.c6
-rw-r--r--drivers/net/arm/ep93xx_eth.c6
-rw-r--r--drivers/net/arm/ixp4xx_eth.c6
-rw-r--r--drivers/net/atl1e/atl1e_main.c6
-rw-r--r--drivers/net/b44.c6
-rw-r--r--drivers/net/bnx2.c15
-rw-r--r--drivers/net/bnx2x_main.c6
-rw-r--r--drivers/net/cassini.c8
-rw-r--r--drivers/net/chelsio/sge.c4
-rw-r--r--drivers/net/cpmac.c10
-rw-r--r--drivers/net/e100.c7
-rw-r--r--drivers/net/e1000/e1000_main.c10
-rw-r--r--drivers/net/e1000e/netdev.c14
-rw-r--r--drivers/net/ehea/ehea_main.c6
-rw-r--r--drivers/net/enic/enic_main.c12
-rw-r--r--drivers/net/epic100.c6
-rw-r--r--drivers/net/forcedeth.c10
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c4
-rw-r--r--drivers/net/gianfar.c6
-rw-r--r--drivers/net/ibmveth.c6
-rw-r--r--drivers/net/igb/igb_main.c12
-rw-r--r--drivers/net/ixgb/ixgb_main.c6
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c12
-rw-r--r--drivers/net/ixp2000/ixpdev.c4
-rw-r--r--drivers/net/jme.c1
-rw-r--r--drivers/net/jme.h6
-rw-r--r--drivers/net/korina.c4
-rw-r--r--drivers/net/macb.c10
-rw-r--r--drivers/net/mlx4/en_rx.c4
-rw-r--r--drivers/net/myri10ge/myri10ge.c6
-rw-r--r--drivers/net/natsemi.c6
-rw-r--r--drivers/net/netxen/netxen_nic_main.c2
-rw-r--r--drivers/net/niu.c6
-rw-r--r--drivers/net/pasemi_mac.c6
-rw-r--r--drivers/net/pcnet32.c6
-rw-r--r--drivers/net/qla3xxx.c6
-rw-r--r--drivers/net/qlge/qlge_main.c7
-rw-r--r--drivers/net/r6040.c4
-rw-r--r--drivers/net/r8169.c6
-rw-r--r--drivers/net/s2io.c8
-rw-r--r--drivers/net/sb1250-mac.c6
-rw-r--r--drivers/net/sfc/efx.c2
-rw-r--r--drivers/net/sfc/efx.h2
-rw-r--r--drivers/net/skge.c6
-rw-r--r--drivers/net/smsc911x.c2
-rw-r--r--drivers/net/smsc9420.c4
-rw-r--r--drivers/net/spider_net.c15
-rw-r--r--drivers/net/starfire.c6
-rw-r--r--drivers/net/sungem.c6
-rw-r--r--drivers/net/tc35815.c6
-rw-r--r--drivers/net/tehuti.c7
-rw-r--r--drivers/net/tg3.c14
-rw-r--r--drivers/net/tsi108_eth.c6
-rw-r--r--drivers/net/tulip/interrupt.c8
-rw-r--r--drivers/net/typhoon.c7
-rw-r--r--drivers/net/ucc_geth.c6
-rw-r--r--drivers/net/via-rhine.c4
-rw-r--r--drivers/net/virtio_net.c12
-rw-r--r--drivers/net/wan/hd64572.c4
-rw-r--r--drivers/net/xen-netfront.c8
-rw-r--r--include/linux/netdevice.h24
66 files changed, 218 insertions, 235 deletions
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c
index 7c49cc882d75..735c125b48af 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(nesdev->netdev[nesvnic->netdev_index], &nesvnic->napi); 2544 netif_rx_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 3c96203e0d91..80e7a4d98d5b 100644
--- a/drivers/infiniband/hw/nes/nes_nic.c
+++ b/drivers/infiniband/hw/nes/nes_nic.c
@@ -112,7 +112,7 @@ static int nes_netdev_poll(struct napi_struct *napi, int budget)
112 nes_nic_ce_handler(nesdev, nescq); 112 nes_nic_ce_handler(nesdev, nescq);
113 113
114 if (nescq->cqes_pending == 0) { 114 if (nescq->cqes_pending == 0) {
115 netif_rx_complete(netdev, napi); 115 netif_rx_complete(napi);
116 /* clear out completed cqes and arm */ 116 /* clear out completed cqes and arm */
117 nes_write32(nesdev->regs+NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT | 117 nes_write32(nesdev->regs+NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT |
118 nescq->cq_number | (nescq->cqe_allocs_pending << 16)); 118 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 28eb6f03c588..a1925810be3c 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(dev, napi); 449 netif_rx_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(dev, napi)) 453 netif_rx_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(dev, &priv->napi); 465 netif_rx_schedule(&priv->napi);
466} 466}
467 467
468static void drain_tx_cq(struct net_device *dev) 468static void drain_tx_cq(struct net_device *dev)
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index f6d9d1353dd5..dd7ac8290aec 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(dev, napi); 607 __netif_rx_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(dev, &cp->napi)) { 644 if (netif_rx_schedule_prep(&cp->napi)) {
645 cpw16_f(IntrMask, cp_norx_intr_mask); 645 cpw16_f(IntrMask, cp_norx_intr_mask);
646 __netif_rx_schedule(dev, &cp->napi); 646 __netif_rx_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 67bbf4f25bea..fe370f805793 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(dev, napi); 2131 __netif_rx_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(dev, &tp->napi)) { 2181 if (netif_rx_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(dev, &tp->napi); 2183 __netif_rx_schedule(&tp->napi);
2184 } 2184 }
2185 } 2185 }
2186 2186
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index 0bc4f54d5db9..187ac6eb6e94 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(dev, napi); 834 __netif_rx_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(dev, &lp->napi)) { 1173 if (netif_rx_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(dev, &lp->napi); 1177 __netif_rx_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 588c9739d13d..6ecc600c1bcc 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(dev, napi); 301 __netif_rx_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);
@@ -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(dev, &ep->napi))) { 418 if (likely(netif_rx_schedule_prep(&ep->napi))) {
419 wrl(ep, REG_INTEN, REG_INTEN_TX); 419 wrl(ep, REG_INTEN, REG_INTEN_TX);
420 __netif_rx_schedule(dev, &ep->napi); 420 __netif_rx_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 14ffa2a61890..b03609f2e90f 100644
--- a/drivers/net/arm/ixp4xx_eth.c
+++ b/drivers/net/arm/ixp4xx_eth.c
@@ -498,7 +498,7 @@ static void eth_rx_irq(void *pdev)
498 printk(KERN_DEBUG "%s: eth_rx_irq\n", dev->name); 498 printk(KERN_DEBUG "%s: eth_rx_irq\n", dev->name);
499#endif 499#endif
500 qmgr_disable_irq(port->plat->rxq); 500 qmgr_disable_irq(port->plat->rxq);
501 netif_rx_schedule(dev, &port->napi); 501 netif_rx_schedule(&port->napi);
502} 502}
503 503
504static int eth_poll(struct napi_struct *napi, int budget) 504static int eth_poll(struct napi_struct *napi, int budget)
@@ -526,7 +526,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
526 printk(KERN_DEBUG "%s: eth_poll netif_rx_complete\n", 526 printk(KERN_DEBUG "%s: eth_poll netif_rx_complete\n",
527 dev->name); 527 dev->name);
528#endif 528#endif
529 netif_rx_complete(dev, napi); 529 netif_rx_complete(napi);
530 qmgr_enable_irq(rxq); 530 qmgr_enable_irq(rxq);
531 if (!qmgr_stat_empty(rxq) && 531 if (!qmgr_stat_empty(rxq) &&
532 netif_rx_reschedule(dev, napi)) { 532 netif_rx_reschedule(dev, napi)) {
@@ -1025,7 +1025,7 @@ static int eth_open(struct net_device *dev)
1025 } 1025 }
1026 ports_open++; 1026 ports_open++;
1027 /* we may already have RX data, enables IRQ */ 1027 /* we may already have RX data, enables IRQ */
1028 netif_rx_schedule(dev, &port->napi); 1028 netif_rx_schedule(&port->napi);
1029 return 0; 1029 return 0;
1030} 1030}
1031 1031
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index 98b2a7a466b8..a72a46145ed7 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(netdev, 1329 if (likely(netif_rx_schedule_prep(
1330 &adapter->napi))) 1330 &adapter->napi)))
1331 __netif_rx_schedule(netdev, &adapter->napi); 1331 __netif_rx_schedule(&adapter->napi);
1332 } 1332 }
1333 } while (--max_ints > 0); 1333 } while (--max_ints > 0);
1334 /* re-enable Interrupt*/ 1334 /* re-enable Interrupt*/
@@ -1515,7 +1515,7 @@ static int atl1e_clean(struct napi_struct *napi, int budget)
1515 /* If no Tx and not enough Rx work done, exit the polling mode */ 1515 /* If no Tx and not enough Rx work done, exit the polling mode */
1516 if (work_done < budget) { 1516 if (work_done < budget) {
1517quit_polling: 1517quit_polling:
1518 netif_rx_complete(netdev, napi); 1518 netif_rx_complete(napi);
1519 imr_data = AT_READ_REG(&adapter->hw, REG_IMR); 1519 imr_data = AT_READ_REG(&adapter->hw, REG_IMR);
1520 AT_WRITE_REG(&adapter->hw, REG_IMR, imr_data | ISR_RX_EVENT); 1520 AT_WRITE_REG(&adapter->hw, REG_IMR, imr_data | ISR_RX_EVENT);
1521 /* test debug */ 1521 /* test debug */
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 2c7a32eb92a5..934a95091dc3 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -875,7 +875,7 @@ static int b44_poll(struct napi_struct *napi, int budget)
875 } 875 }
876 876
877 if (work_done < budget) { 877 if (work_done < budget) {
878 netif_rx_complete(netdev, napi); 878 netif_rx_complete(napi);
879 b44_enable_ints(bp); 879 b44_enable_ints(bp);
880 } 880 }
881 881
@@ -907,13 +907,13 @@ static irqreturn_t b44_interrupt(int irq, void *dev_id)
907 goto irq_ack; 907 goto irq_ack;
908 } 908 }
909 909
910 if (netif_rx_schedule_prep(dev, &bp->napi)) { 910 if (netif_rx_schedule_prep(&bp->napi)) {
911 /* NOTE: These writes are posted by the readback of 911 /* NOTE: These writes are posted by the readback of
912 * the ISTAT register below. 912 * the ISTAT register below.
913 */ 913 */
914 bp->istat = istat; 914 bp->istat = istat;
915 __b44_disable_ints(bp); 915 __b44_disable_ints(bp);
916 __netif_rx_schedule(dev, &bp->napi); 916 __netif_rx_schedule(&bp->napi);
917 } else { 917 } else {
918 printk(KERN_ERR PFX "%s: Error, poll already scheduled\n", 918 printk(KERN_ERR PFX "%s: Error, poll already scheduled\n",
919 dev->name); 919 dev->name);
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 1a2780374a49..33d69ddc90a3 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -3043,7 +3043,6 @@ bnx2_msi(int irq, void *dev_instance)
3043{ 3043{
3044 struct bnx2_napi *bnapi = dev_instance; 3044 struct bnx2_napi *bnapi = dev_instance;
3045 struct bnx2 *bp = bnapi->bp; 3045 struct bnx2 *bp = bnapi->bp;
3046 struct net_device *dev = bp->dev;
3047 3046
3048 prefetch(bnapi->status_blk.msi); 3047 prefetch(bnapi->status_blk.msi);
3049 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD, 3048 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD,
@@ -3054,7 +3053,7 @@ bnx2_msi(int irq, void *dev_instance)
3054 if (unlikely(atomic_read(&bp->intr_sem) != 0)) 3053 if (unlikely(atomic_read(&bp->intr_sem) != 0))
3055 return IRQ_HANDLED; 3054 return IRQ_HANDLED;
3056 3055
3057 netif_rx_schedule(dev, &bnapi->napi); 3056 netif_rx_schedule(&bnapi->napi);
3058 3057
3059 return IRQ_HANDLED; 3058 return IRQ_HANDLED;
3060} 3059}
@@ -3064,7 +3063,6 @@ bnx2_msi_1shot(int irq, void *dev_instance)
3064{ 3063{
3065 struct bnx2_napi *bnapi = dev_instance; 3064 struct bnx2_napi *bnapi = dev_instance;
3066 struct bnx2 *bp = bnapi->bp; 3065 struct bnx2 *bp = bnapi->bp;
3067 struct net_device *dev = bp->dev;
3068 3066
3069 prefetch(bnapi->status_blk.msi); 3067 prefetch(bnapi->status_blk.msi);
3070 3068
@@ -3072,7 +3070,7 @@ bnx2_msi_1shot(int irq, void *dev_instance)
3072 if (unlikely(atomic_read(&bp->intr_sem) != 0)) 3070 if (unlikely(atomic_read(&bp->intr_sem) != 0))
3073 return IRQ_HANDLED; 3071 return IRQ_HANDLED;
3074 3072
3075 netif_rx_schedule(dev, &bnapi->napi); 3073 netif_rx_schedule(&bnapi->napi);
3076 3074
3077 return IRQ_HANDLED; 3075 return IRQ_HANDLED;
3078} 3076}
@@ -3082,7 +3080,6 @@ bnx2_interrupt(int irq, void *dev_instance)
3082{ 3080{
3083 struct bnx2_napi *bnapi = dev_instance; 3081 struct bnx2_napi *bnapi = dev_instance;
3084 struct bnx2 *bp = bnapi->bp; 3082 struct bnx2 *bp = bnapi->bp;
3085 struct net_device *dev = bp->dev;
3086 struct status_block *sblk = bnapi->status_blk.msi; 3083 struct status_block *sblk = bnapi->status_blk.msi;
3087 3084
3088 /* When using INTx, it is possible for the interrupt to arrive 3085 /* When using INTx, it is possible for the interrupt to arrive
@@ -3109,9 +3106,9 @@ bnx2_interrupt(int irq, void *dev_instance)
3109 if (unlikely(atomic_read(&bp->intr_sem) != 0)) 3106 if (unlikely(atomic_read(&bp->intr_sem) != 0))
3110 return IRQ_HANDLED; 3107 return IRQ_HANDLED;
3111 3108
3112 if (netif_rx_schedule_prep(dev, &bnapi->napi)) { 3109 if (netif_rx_schedule_prep(&bnapi->napi)) {
3113 bnapi->last_status_idx = sblk->status_idx; 3110 bnapi->last_status_idx = sblk->status_idx;
3114 __netif_rx_schedule(dev, &bnapi->napi); 3111 __netif_rx_schedule(&bnapi->napi);
3115 } 3112 }
3116 3113
3117 return IRQ_HANDLED; 3114 return IRQ_HANDLED;
@@ -3221,7 +3218,7 @@ static int bnx2_poll_msix(struct napi_struct *napi, int budget)
3221 rmb(); 3218 rmb();
3222 if (likely(!bnx2_has_fast_work(bnapi))) { 3219 if (likely(!bnx2_has_fast_work(bnapi))) {
3223 3220
3224 netif_rx_complete(bp->dev, napi); 3221 netif_rx_complete(napi);
3225 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num | 3222 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
3226 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID | 3223 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
3227 bnapi->last_status_idx); 3224 bnapi->last_status_idx);
@@ -3254,7 +3251,7 @@ static int bnx2_poll(struct napi_struct *napi, int budget)
3254 3251
3255 rmb(); 3252 rmb();
3256 if (likely(!bnx2_has_work(bnapi))) { 3253 if (likely(!bnx2_has_work(bnapi))) {
3257 netif_rx_complete(bp->dev, napi); 3254 netif_rx_complete(napi);
3258 if (likely(bp->flags & BNX2_FLAG_USING_MSI_OR_MSIX)) { 3255 if (likely(bp->flags & BNX2_FLAG_USING_MSI_OR_MSIX)) {
3259 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD, 3256 REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD,
3260 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 24d2ae8b74bf..02ab9b0ea697 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -1615,7 +1615,7 @@ static irqreturn_t bnx2x_msix_fp_int(int irq, void *fp_cookie)
1615 prefetch(&fp->status_blk->c_status_block.status_block_index); 1615 prefetch(&fp->status_blk->c_status_block.status_block_index);
1616 prefetch(&fp->status_blk->u_status_block.status_block_index); 1616 prefetch(&fp->status_blk->u_status_block.status_block_index);
1617 1617
1618 netif_rx_schedule(dev, &bnx2x_fp(bp, index, napi)); 1618 netif_rx_schedule(&bnx2x_fp(bp, index, napi));
1619 1619
1620 return IRQ_HANDLED; 1620 return IRQ_HANDLED;
1621} 1621}
@@ -1654,7 +1654,7 @@ static irqreturn_t bnx2x_interrupt(int irq, void *dev_instance)
1654 prefetch(&fp->status_blk->c_status_block.status_block_index); 1654 prefetch(&fp->status_blk->c_status_block.status_block_index);
1655 prefetch(&fp->status_blk->u_status_block.status_block_index); 1655 prefetch(&fp->status_blk->u_status_block.status_block_index);
1656 1656
1657 netif_rx_schedule(dev, &bnx2x_fp(bp, 0, napi)); 1657 netif_rx_schedule(&bnx2x_fp(bp, 0, napi));
1658 1658
1659 status &= ~mask; 1659 status &= ~mask;
1660 } 1660 }
@@ -9284,7 +9284,7 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
9284#ifdef BNX2X_STOP_ON_ERROR 9284#ifdef BNX2X_STOP_ON_ERROR
9285poll_panic: 9285poll_panic:
9286#endif 9286#endif
9287 netif_rx_complete(bp->dev, napi); 9287 netif_rx_complete(napi);
9288 9288
9289 bnx2x_ack_sb(bp, FP_SB_ID(fp), USTORM_ID, 9289 bnx2x_ack_sb(bp, FP_SB_ID(fp), USTORM_ID,
9290 le16_to_cpu(fp->fp_u_idx), IGU_INT_NOP, 1); 9290 le16_to_cpu(fp->fp_u_idx), IGU_INT_NOP, 1);
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 023d205e9054..321f43d9f0e2 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(dev, &cp->napi); 2509 netif_rx_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(dev, &cp->napi); 2560 netif_rx_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(dev, &cp->napi); 2616 netif_rx_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(dev, napi); 2694 netif_rx_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 1da70070c2fa..7896468dda11 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1613,7 +1613,7 @@ int t1_poll(struct napi_struct *napi, int budget)
1613 int work_done = process_responses(adapter, budget); 1613 int work_done = process_responses(adapter, budget);
1614 1614
1615 if (likely(work_done < budget)) { 1615 if (likely(work_done < budget)) {
1616 netif_rx_complete(dev, napi); 1616 netif_rx_complete(napi);
1617 writel(adapter->sge->respQ.cidx, 1617 writel(adapter->sge->respQ.cidx,
1618 adapter->regs + A_SG_SLEEPING); 1618 adapter->regs + A_SG_SLEEPING);
1619 } 1619 }
@@ -1633,7 +1633,7 @@ irqreturn_t t1_interrupt(int irq, void *data)
1633 1633
1634 if (napi_schedule_prep(&adapter->napi)) { 1634 if (napi_schedule_prep(&adapter->napi)) {
1635 if (process_pure_responses(adapter)) 1635 if (process_pure_responses(adapter))
1636 __netif_rx_schedule(dev, &adapter->napi); 1636 __netif_rx_schedule(&adapter->napi);
1637 else { 1637 else {
1638 /* no data, no NAPI needed */ 1638 /* no data, no NAPI needed */
1639 writel(sge->respQ.cidx, adapter->regs + A_SG_SLEEPING); 1639 writel(sge->respQ.cidx, adapter->regs + A_SG_SLEEPING);
diff --git a/drivers/net/cpmac.c b/drivers/net/cpmac.c
index d39a77cba1af..f66548751c38 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(priv->dev, napi); 431 netif_rx_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(priv->dev, napi); 517 netif_rx_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(priv->dev, napi); 539 netif_rx_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(dev, &priv->napi)) { 805 if (netif_rx_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(dev, &priv->napi); 807 __netif_rx_schedule(&priv->napi);
808 } 808 }
809 } 809 }
810 810
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index dce7ff28c3ff..9f38b16ccbbd 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2049,9 +2049,9 @@ static irqreturn_t e100_intr(int irq, void *dev_id)
2049 if(stat_ack & stat_ack_rnr) 2049 if(stat_ack & stat_ack_rnr)
2050 nic->ru_running = RU_SUSPENDED; 2050 nic->ru_running = RU_SUSPENDED;
2051 2051
2052 if(likely(netif_rx_schedule_prep(netdev, &nic->napi))) { 2052 if(likely(netif_rx_schedule_prep(&nic->napi))) {
2053 e100_disable_irq(nic); 2053 e100_disable_irq(nic);
2054 __netif_rx_schedule(netdev, &nic->napi); 2054 __netif_rx_schedule(&nic->napi);
2055 } 2055 }
2056 2056
2057 return IRQ_HANDLED; 2057 return IRQ_HANDLED;
@@ -2060,7 +2060,6 @@ static irqreturn_t e100_intr(int irq, void *dev_id)
2060static int e100_poll(struct napi_struct *napi, int budget) 2060static int e100_poll(struct napi_struct *napi, int budget)
2061{ 2061{
2062 struct nic *nic = container_of(napi, struct nic, napi); 2062 struct nic *nic = container_of(napi, struct nic, napi);
2063 struct net_device *netdev = nic->netdev;
2064 unsigned int work_done = 0; 2063 unsigned int work_done = 0;
2065 2064
2066 e100_rx_clean(nic, &work_done, budget); 2065 e100_rx_clean(nic, &work_done, budget);
@@ -2068,7 +2067,7 @@ static int e100_poll(struct napi_struct *napi, int budget)
2068 2067
2069 /* If budget not fully consumed, exit the polling mode */ 2068 /* If budget not fully consumed, exit the polling mode */
2070 if (work_done < budget) { 2069 if (work_done < budget) {
2071 netif_rx_complete(netdev, napi); 2070 netif_rx_complete(napi);
2072 e100_enable_irq(nic); 2071 e100_enable_irq(nic);
2073 } 2072 }
2074 2073
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 116c96e0b119..26474c92193f 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(netdev, &adapter->napi))) { 3690 if (likely(netif_rx_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(netdev, &adapter->napi); 3695 __netif_rx_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(netdev, &adapter->napi))) { 3750 if (likely(netif_rx_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(netdev, &adapter->napi); 3755 __netif_rx_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(poll_dev, napi); 3796 netif_rx_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 f7b05609073d..d4639facd1bd 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(netdev, &adapter->napi)) { 1182 if (netif_rx_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(netdev, &adapter->napi); 1187 __netif_rx_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(netdev, &adapter->napi)) { 1249 if (netif_rx_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(netdev, &adapter->napi); 1254 __netif_rx_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(netdev, &adapter->napi)) { 1323 if (netif_rx_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(netdev, &adapter->napi); 1326 __netif_rx_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(poll_dev, napi); 2031 netif_rx_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 44c9ae18383f..035aa7dfc5cd 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(dev, napi); 833 netif_rx_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);
@@ -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(dev, &port->port_res[i].napi); 862 netif_rx_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->port->netdev, &pr->napi); 870 netif_rx_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 deddd76a550c..d039e16f2763 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(netdev, &enic->napi)) 414 if (netif_rx_schedule_prep(&enic->napi))
415 __netif_rx_schedule(netdev, &enic->napi); 415 __netif_rx_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->netdev, &enic->napi); 443 netif_rx_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->netdev, &enic->napi); 453 netif_rx_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(netdev, napi); 1071 netif_rx_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(netdev, napi); 1115 netif_rx_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 4a951b8cb4d7..f9b37c80dda6 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -1109,9 +1109,9 @@ static irqreturn_t epic_interrupt(int irq, void *dev_instance)
1109 1109
1110 if ((status & EpicNapiEvent) && !ep->reschedule_in_poll) { 1110 if ((status & EpicNapiEvent) && !ep->reschedule_in_poll) {
1111 spin_lock(&ep->napi_lock); 1111 spin_lock(&ep->napi_lock);
1112 if (netif_rx_schedule_prep(dev, &ep->napi)) { 1112 if (netif_rx_schedule_prep(&ep->napi)) {
1113 epic_napi_irq_off(dev, ep); 1113 epic_napi_irq_off(dev, ep);
1114 __netif_rx_schedule(dev, &ep->napi); 1114 __netif_rx_schedule(&ep->napi);
1115 } else 1115 } else
1116 ep->reschedule_in_poll++; 1116 ep->reschedule_in_poll++;
1117 spin_unlock(&ep->napi_lock); 1117 spin_unlock(&ep->napi_lock);
@@ -1288,7 +1288,7 @@ rx_action:
1288 1288
1289 more = ep->reschedule_in_poll; 1289 more = ep->reschedule_in_poll;
1290 if (!more) { 1290 if (!more) {
1291 __netif_rx_complete(dev, napi); 1291 __netif_rx_complete(napi);
1292 outl(EpicNapiEvent, ioaddr + INTSTAT); 1292 outl(EpicNapiEvent, ioaddr + INTSTAT);
1293 epic_napi_irq_on(dev, ep); 1293 epic_napi_irq_on(dev, ep);
1294 } else 1294 } else
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 1f2b24743ee9..9fbfa856ae5b 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(dev, &np->napi); 1763 netif_rx_schedule(&np->napi);
1764} 1764}
1765#else 1765#else
1766static void nv_do_rx_refill(unsigned long data) 1766static void nv_do_rx_refill(unsigned long data)
@@ -3403,7 +3403,7 @@ static irqreturn_t nv_nic_irq(int foo, void *data)
3403 3403
3404#ifdef CONFIG_FORCEDETH_NAPI 3404#ifdef CONFIG_FORCEDETH_NAPI
3405 if (events & NVREG_IRQ_RX_ALL) { 3405 if (events & NVREG_IRQ_RX_ALL) {
3406 netif_rx_schedule(dev, &np->napi); 3406 netif_rx_schedule(&np->napi);
3407 3407
3408 /* Disable furthur receive irq's */ 3408 /* Disable furthur receive irq's */
3409 spin_lock(&np->lock); 3409 spin_lock(&np->lock);
@@ -3520,7 +3520,7 @@ static irqreturn_t nv_nic_irq_optimized(int foo, void *data)
3520 3520
3521#ifdef CONFIG_FORCEDETH_NAPI 3521#ifdef CONFIG_FORCEDETH_NAPI
3522 if (events & NVREG_IRQ_RX_ALL) { 3522 if (events & NVREG_IRQ_RX_ALL) {
3523 netif_rx_schedule(dev, &np->napi); 3523 netif_rx_schedule(&np->napi);
3524 3524
3525 /* Disable furthur receive irq's */ 3525 /* Disable furthur receive irq's */
3526 spin_lock(&np->lock); 3526 spin_lock(&np->lock);
@@ -3678,7 +3678,7 @@ static int nv_napi_poll(struct napi_struct *napi, int budget)
3678 /* re-enable receive interrupts */ 3678 /* re-enable receive interrupts */
3679 spin_lock_irqsave(&np->lock, flags); 3679 spin_lock_irqsave(&np->lock, flags);
3680 3680
3681 __netif_rx_complete(dev, napi); 3681 __netif_rx_complete(napi);
3682 3682
3683 np->irqmask |= NVREG_IRQ_RX_ALL; 3683 np->irqmask |= NVREG_IRQ_RX_ALL;
3684 if (np->msi_flags & NV_MSI_X_ENABLED) 3684 if (np->msi_flags & NV_MSI_X_ENABLED)
@@ -3704,7 +3704,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data)
3704 writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus); 3704 writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus);
3705 3705
3706 if (events) { 3706 if (events) {
3707 netif_rx_schedule(dev, &np->napi); 3707 netif_rx_schedule(&np->napi);
3708 /* disable receive interrupts on the nic */ 3708 /* disable receive interrupts on the nic */
3709 writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); 3709 writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask);
3710 pci_push(base); 3710 pci_push(base);
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index df66d620b115..4e6a9195fe5f 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(dev, napi); 212 netif_rx_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(dev, &fep->napi); 481 __netif_rx_schedule(&fep->napi);
482 } 482 }
483 } 483 }
484 484
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 13f49643ba0b..c672ecfc9595 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1607,9 +1607,9 @@ static int gfar_clean_tx_ring(struct net_device *dev)
1607static void gfar_schedule_cleanup(struct net_device *dev) 1607static void gfar_schedule_cleanup(struct net_device *dev)
1608{ 1608{
1609 struct gfar_private *priv = netdev_priv(dev); 1609 struct gfar_private *priv = netdev_priv(dev);
1610 if (netif_rx_schedule_prep(dev, &priv->napi)) { 1610 if (netif_rx_schedule_prep(&priv->napi)) {
1611 gfar_write(&priv->regs->imask, IMASK_RTX_DISABLED); 1611 gfar_write(&priv->regs->imask, IMASK_RTX_DISABLED);
1612 __netif_rx_schedule(dev, &priv->napi); 1612 __netif_rx_schedule(&priv->napi);
1613 } 1613 }
1614} 1614}
1615 1615
@@ -1863,7 +1863,7 @@ static int gfar_poll(struct napi_struct *napi, int budget)
1863 return budget; 1863 return budget;
1864 1864
1865 if (rx_cleaned < budget) { 1865 if (rx_cleaned < budget) {
1866 netif_rx_complete(dev, napi); 1866 netif_rx_complete(napi);
1867 1867
1868 /* Clear the halt bit in RSTAT */ 1868 /* Clear the halt bit in RSTAT */
1869 gfar_write(&priv->regs->rstat, RSTAT_CLEAR_RHALT); 1869 gfar_write(&priv->regs->rstat, RSTAT_CLEAR_RHALT);
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index 02ecfdb4df6b..1f055a955089 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -1028,7 +1028,7 @@ 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(netdev, napi); 1031 netif_rx_complete(napi);
1032 1032
1033 if (ibmveth_rxq_pending_buffer(adapter) && 1033 if (ibmveth_rxq_pending_buffer(adapter) &&
1034 netif_rx_reschedule(netdev, napi)) { 1034 netif_rx_reschedule(netdev, napi)) {
@@ -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(netdev, &adapter->napi)) { 1050 if (netif_rx_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(netdev, &adapter->napi); 1054 __netif_rx_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 25df7c931064..6a40d9486daf 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -3347,8 +3347,8 @@ static irqreturn_t igb_msix_rx(int irq, void *data)
3347 3347
3348 igb_write_itr(rx_ring); 3348 igb_write_itr(rx_ring);
3349 3349
3350 if (netif_rx_schedule_prep(adapter->netdev, &rx_ring->napi)) 3350 if (netif_rx_schedule_prep(&rx_ring->napi))
3351 __netif_rx_schedule(adapter->netdev, &rx_ring->napi); 3351 __netif_rx_schedule(&rx_ring->napi);
3352 3352
3353#ifdef CONFIG_IGB_DCA 3353#ifdef CONFIG_IGB_DCA
3354 if (adapter->flags & IGB_FLAG_DCA_ENABLED) 3354 if (adapter->flags & IGB_FLAG_DCA_ENABLED)
@@ -3500,7 +3500,7 @@ static irqreturn_t igb_intr_msi(int irq, void *data)
3500 mod_timer(&adapter->watchdog_timer, jiffies + 1); 3500 mod_timer(&adapter->watchdog_timer, jiffies + 1);
3501 } 3501 }
3502 3502
3503 netif_rx_schedule(netdev, &adapter->rx_ring[0].napi); 3503 netif_rx_schedule(&adapter->rx_ring[0].napi);
3504 3504
3505 return IRQ_HANDLED; 3505 return IRQ_HANDLED;
3506} 3506}
@@ -3538,7 +3538,7 @@ static irqreturn_t igb_intr(int irq, void *data)
3538 mod_timer(&adapter->watchdog_timer, jiffies + 1); 3538 mod_timer(&adapter->watchdog_timer, jiffies + 1);
3539 } 3539 }
3540 3540
3541 netif_rx_schedule(netdev, &adapter->rx_ring[0].napi); 3541 netif_rx_schedule(&adapter->rx_ring[0].napi);
3542 3542
3543 return IRQ_HANDLED; 3543 return IRQ_HANDLED;
3544} 3544}
@@ -3573,7 +3573,7 @@ static int igb_poll(struct napi_struct *napi, int budget)
3573 !netif_running(netdev)) { 3573 !netif_running(netdev)) {
3574 if (adapter->itr_setting & 3) 3574 if (adapter->itr_setting & 3)
3575 igb_set_itr(adapter); 3575 igb_set_itr(adapter);
3576 netif_rx_complete(netdev, napi); 3576 netif_rx_complete(napi);
3577 if (!test_bit(__IGB_DOWN, &adapter->state)) 3577 if (!test_bit(__IGB_DOWN, &adapter->state))
3578 igb_irq_enable(adapter); 3578 igb_irq_enable(adapter);
3579 return 0; 3579 return 0;
@@ -3599,7 +3599,7 @@ static int igb_clean_rx_ring_msix(struct napi_struct *napi, int budget)
3599 3599
3600 /* If not enough Rx work done, exit the polling mode */ 3600 /* If not enough Rx work done, exit the polling mode */
3601 if ((work_done == 0) || !netif_running(netdev)) { 3601 if ((work_done == 0) || !netif_running(netdev)) {
3602 netif_rx_complete(netdev, napi); 3602 netif_rx_complete(napi);
3603 3603
3604 if (adapter->itr_setting & 3) { 3604 if (adapter->itr_setting & 3) {
3605 if (adapter->num_rx_queues == 1) 3605 if (adapter->num_rx_queues == 1)
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 820a92cc7f62..679125b3bbc9 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(netdev, &adapter->napi)) { 1724 if (netif_rx_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(netdev, &adapter->napi); 1731 __netif_rx_schedule(&adapter->napi);
1732 } 1732 }
1733 return IRQ_HANDLED; 1733 return IRQ_HANDLED;
1734} 1734}
@@ -1750,7 +1750,7 @@ ixgb_clean(struct napi_struct *napi, int budget)
1750 1750
1751 /* If budget not fully consumed, exit the polling mode */ 1751 /* If budget not fully consumed, exit the polling mode */
1752 if (work_done < budget) { 1752 if (work_done < budget) {
1753 netif_rx_complete(netdev, napi); 1753 netif_rx_complete(napi);
1754 if (!test_bit(__IXGB_DOWN, &adapter->flags)) 1754 if (!test_bit(__IXGB_DOWN, &adapter->flags))
1755 ixgb_irq_enable(adapter); 1755 ixgb_irq_enable(adapter);
1756 } 1756 }
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 92b35cfc7a46..b6ae9f674ba5 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1012,7 +1012,7 @@ static irqreturn_t ixgbe_msix_clean_rx(int irq, void *data)
1012 rx_ring = &(adapter->rx_ring[r_idx]); 1012 rx_ring = &(adapter->rx_ring[r_idx]);
1013 /* disable interrupts on this vector only */ 1013 /* disable interrupts on this vector only */
1014 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, rx_ring->v_idx); 1014 IXGBE_WRITE_REG(&adapter->hw, IXGBE_EIMC, rx_ring->v_idx);
1015 netif_rx_schedule(adapter->netdev, &q_vector->napi); 1015 netif_rx_schedule(&q_vector->napi);
1016 1016
1017 return IRQ_HANDLED; 1017 return IRQ_HANDLED;
1018} 1018}
@@ -1053,7 +1053,7 @@ static int ixgbe_clean_rxonly(struct napi_struct *napi, int budget)
1053 1053
1054 /* If all Rx work done, exit the polling mode */ 1054 /* If all Rx work done, exit the polling mode */
1055 if (work_done < budget) { 1055 if (work_done < budget) {
1056 netif_rx_complete(adapter->netdev, napi); 1056 netif_rx_complete(napi);
1057 if (adapter->itr_setting & 3) 1057 if (adapter->itr_setting & 3)
1058 ixgbe_set_itr_msix(q_vector); 1058 ixgbe_set_itr_msix(q_vector);
1059 if (!test_bit(__IXGBE_DOWN, &adapter->state)) 1059 if (!test_bit(__IXGBE_DOWN, &adapter->state))
@@ -1102,7 +1102,7 @@ static int ixgbe_clean_rxonly_many(struct napi_struct *napi, int budget)
1102 rx_ring = &(adapter->rx_ring[r_idx]); 1102 rx_ring = &(adapter->rx_ring[r_idx]);
1103 /* If all Rx work done, exit the polling mode */ 1103 /* If all Rx work done, exit the polling mode */
1104 if (work_done < budget) { 1104 if (work_done < budget) {
1105 netif_rx_complete(adapter->netdev, napi); 1105 netif_rx_complete(napi);
1106 if (adapter->itr_setting & 3) 1106 if (adapter->itr_setting & 3)
1107 ixgbe_set_itr_msix(q_vector); 1107 ixgbe_set_itr_msix(q_vector);
1108 if (!test_bit(__IXGBE_DOWN, &adapter->state)) 1108 if (!test_bit(__IXGBE_DOWN, &adapter->state))
@@ -1378,13 +1378,13 @@ static irqreturn_t ixgbe_intr(int irq, void *data)
1378 1378
1379 ixgbe_check_fan_failure(adapter, eicr); 1379 ixgbe_check_fan_failure(adapter, eicr);
1380 1380
1381 if (netif_rx_schedule_prep(netdev, &adapter->q_vector[0].napi)) { 1381 if (netif_rx_schedule_prep(&adapter->q_vector[0].napi)) {
1382 adapter->tx_ring[0].total_packets = 0; 1382 adapter->tx_ring[0].total_packets = 0;
1383 adapter->tx_ring[0].total_bytes = 0; 1383 adapter->tx_ring[0].total_bytes = 0;
1384 adapter->rx_ring[0].total_packets = 0; 1384 adapter->rx_ring[0].total_packets = 0;
1385 adapter->rx_ring[0].total_bytes = 0; 1385 adapter->rx_ring[0].total_bytes = 0;
1386 /* would disable interrupts here but EIAM disabled it */ 1386 /* would disable interrupts here but EIAM disabled it */
1387 __netif_rx_schedule(netdev, &adapter->q_vector[0].napi); 1387 __netif_rx_schedule(&adapter->q_vector[0].napi);
1388 } 1388 }
1389 1389
1390 return IRQ_HANDLED; 1390 return IRQ_HANDLED;
@@ -2308,7 +2308,7 @@ static int ixgbe_poll(struct napi_struct *napi, int budget)
2308 2308
2309 /* If budget not fully consumed, exit the polling mode */ 2309 /* If budget not fully consumed, exit the polling mode */
2310 if (work_done < budget) { 2310 if (work_done < budget) {
2311 netif_rx_complete(adapter->netdev, napi); 2311 netif_rx_complete(napi);
2312 if (adapter->itr_setting & 3) 2312 if (adapter->itr_setting & 3)
2313 ixgbe_set_itr(adapter); 2313 ixgbe_set_itr(adapter);
2314 if (!test_bit(__IXGBE_DOWN, &adapter->state)) 2314 if (!test_bit(__IXGBE_DOWN, &adapter->state))
diff --git a/drivers/net/ixp2000/ixpdev.c b/drivers/net/ixp2000/ixpdev.c
index bd96dbc8e021..014745720560 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(dev, napi); 144 netif_rx_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(dev, &ip->napi); 207 __netif_rx_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.c b/drivers/net/jme.c
index 15035cb1738a..08b34051c646 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -1250,7 +1250,6 @@ static int
1250jme_poll(JME_NAPI_HOLDER(holder), JME_NAPI_WEIGHT(budget)) 1250jme_poll(JME_NAPI_HOLDER(holder), JME_NAPI_WEIGHT(budget))
1251{ 1251{
1252 struct jme_adapter *jme = jme_napi_priv(holder); 1252 struct jme_adapter *jme = jme_napi_priv(holder);
1253 struct net_device *netdev = jme->dev;
1254 int rest; 1253 int rest;
1255 1254
1256 rest = jme_process_receive(jme, JME_NAPI_WEIGHT_VAL(budget)); 1255 rest = jme_process_receive(jme, JME_NAPI_WEIGHT_VAL(budget));
diff --git a/drivers/net/jme.h b/drivers/net/jme.h
index adaf3ddbf783..2d6f30e638fc 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(dev, napis) 401#define JME_RX_COMPLETE(dev, napis) netif_rx_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->dev, &priv->napi) 407 netif_rx_schedule_prep(&priv->napi)
408#define JME_RX_SCHEDULE(priv) \ 408#define JME_RX_SCHEDULE(priv) \
409 __netif_rx_schedule(priv->dev, &priv->napi); 409 __netif_rx_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 63626953f07e..4a5580c1126a 100644
--- a/drivers/net/korina.c
+++ b/drivers/net/korina.c
@@ -327,7 +327,7 @@ static irqreturn_t korina_rx_dma_interrupt(int irq, void *dev_id)
327 327
328 dmas = readl(&lp->rx_dma_regs->dmas); 328 dmas = readl(&lp->rx_dma_regs->dmas);
329 if (dmas & (DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR)) { 329 if (dmas & (DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR)) {
330 netif_rx_schedule_prep(dev, &lp->napi); 330 netif_rx_schedule_prep(&lp->napi);
331 331
332 dmasm = readl(&lp->rx_dma_regs->dmasm); 332 dmasm = readl(&lp->rx_dma_regs->dmasm);
333 writel(dmasm | (DMA_STAT_DONE | 333 writel(dmasm | (DMA_STAT_DONE |
@@ -466,7 +466,7 @@ static int korina_poll(struct napi_struct *napi, int budget)
466 466
467 work_done = korina_rx(dev, budget); 467 work_done = korina_rx(dev, budget);
468 if (work_done < budget) { 468 if (work_done < budget) {
469 netif_rx_complete(dev, napi); 469 netif_rx_complete(napi);
470 470
471 writel(readl(&lp->rx_dma_regs->dmasm) & 471 writel(readl(&lp->rx_dma_regs->dmasm) &
472 ~(DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR), 472 ~(DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR),
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 261b9507124b..a04da4ecaa88 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -519,7 +519,7 @@ static int macb_poll(struct napi_struct *napi, int budget)
519 * this function was called last time, and no packets 519 * this function was called last time, and no packets
520 * have been received since. 520 * have been received since.
521 */ 521 */
522 netif_rx_complete(dev, napi); 522 netif_rx_complete(napi);
523 goto out; 523 goto out;
524 } 524 }
525 525
@@ -530,13 +530,13 @@ static int macb_poll(struct napi_struct *napi, int budget)
530 dev_warn(&bp->pdev->dev, 530 dev_warn(&bp->pdev->dev,
531 "No RX buffers complete, status = %02lx\n", 531 "No RX buffers complete, status = %02lx\n",
532 (unsigned long)status); 532 (unsigned long)status);
533 netif_rx_complete(dev, napi); 533 netif_rx_complete(napi);
534 goto out; 534 goto out;
535 } 535 }
536 536
537 work_done = macb_rx(bp, budget); 537 work_done = macb_rx(bp, budget);
538 if (work_done < budget) 538 if (work_done < budget)
539 netif_rx_complete(dev, napi); 539 netif_rx_complete(napi);
540 540
541 /* 541 /*
542 * We've done what we can to clean the buffers. Make sure we 542 * We've done what we can to clean the buffers. Make sure we
@@ -571,7 +571,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
571 } 571 }
572 572
573 if (status & MACB_RX_INT_FLAGS) { 573 if (status & MACB_RX_INT_FLAGS) {
574 if (netif_rx_schedule_prep(dev, &bp->napi)) { 574 if (netif_rx_schedule_prep(&bp->napi)) {
575 /* 575 /*
576 * There's no point taking any more interrupts 576 * There's no point taking any more interrupts
577 * until we have processed the buffers 577 * until we have processed the buffers
@@ -579,7 +579,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
579 macb_writel(bp, IDR, MACB_RX_INT_FLAGS); 579 macb_writel(bp, IDR, MACB_RX_INT_FLAGS);
580 dev_dbg(&bp->pdev->dev, 580 dev_dbg(&bp->pdev->dev,
581 "scheduling RX softirq\n"); 581 "scheduling RX softirq\n");
582 __netif_rx_schedule(dev, &bp->napi); 582 __netif_rx_schedule(&bp->napi);
583 } 583 }
584 } 584 }
585 585
diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index ffe28089b687..c61b0bdca1a4 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->dev, &cq->napi); 817 netif_rx_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(dev, napi); 837 netif_rx_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 f017c774e1a4..378c89e6c7d5 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1515,7 +1515,7 @@ static int myri10ge_poll(struct napi_struct *napi, int budget)
1515 work_done = myri10ge_clean_rx_done(ss, budget); 1515 work_done = myri10ge_clean_rx_done(ss, budget);
1516 1516
1517 if (work_done < budget) { 1517 if (work_done < budget) {
1518 netif_rx_complete(netdev, napi); 1518 netif_rx_complete(napi);
1519 put_be32(htonl(3), ss->irq_claim); 1519 put_be32(htonl(3), ss->irq_claim);
1520 } 1520 }
1521 return work_done; 1521 return work_done;
@@ -1533,7 +1533,7 @@ static irqreturn_t myri10ge_intr(int irq, void *arg)
1533 /* an interrupt on a non-zero receive-only slice is implicitly 1533 /* an interrupt on a non-zero receive-only slice is implicitly
1534 * valid since MSI-X irqs are not shared */ 1534 * valid since MSI-X irqs are not shared */
1535 if ((mgp->dev->real_num_tx_queues == 1) && (ss != mgp->ss)) { 1535 if ((mgp->dev->real_num_tx_queues == 1) && (ss != mgp->ss)) {
1536 netif_rx_schedule(ss->dev, &ss->napi); 1536 netif_rx_schedule(&ss->napi);
1537 return (IRQ_HANDLED); 1537 return (IRQ_HANDLED);
1538 } 1538 }
1539 1539
@@ -1544,7 +1544,7 @@ static irqreturn_t myri10ge_intr(int irq, void *arg)
1544 /* low bit indicates receives are present, so schedule 1544 /* low bit indicates receives are present, so schedule
1545 * napi poll handler */ 1545 * napi poll handler */
1546 if (stats->valid & 1) 1546 if (stats->valid & 1)
1547 netif_rx_schedule(ss->dev, &ss->napi); 1547 netif_rx_schedule(&ss->napi);
1548 1548
1549 if (!mgp->msi_enabled && !mgp->msix_enabled) { 1549 if (!mgp->msi_enabled && !mgp->msix_enabled) {
1550 put_be32(0, mgp->irq_deassert); 1550 put_be32(0, mgp->irq_deassert);
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index 9f81fcb96882..478edb92bca3 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -2193,10 +2193,10 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)
2193 2193
2194 prefetch(&np->rx_skbuff[np->cur_rx % RX_RING_SIZE]); 2194 prefetch(&np->rx_skbuff[np->cur_rx % RX_RING_SIZE]);
2195 2195
2196 if (netif_rx_schedule_prep(dev, &np->napi)) { 2196 if (netif_rx_schedule_prep(&np->napi)) {
2197 /* Disable interrupts and register for poll */ 2197 /* Disable interrupts and register for poll */
2198 natsemi_irq_disable(dev); 2198 natsemi_irq_disable(dev);
2199 __netif_rx_schedule(dev, &np->napi); 2199 __netif_rx_schedule(&np->napi);
2200 } else 2200 } else
2201 printk(KERN_WARNING 2201 printk(KERN_WARNING
2202 "%s: Ignoring interrupt, status %#08x, mask %#08x.\n", 2202 "%s: Ignoring interrupt, status %#08x, mask %#08x.\n",
@@ -2248,7 +2248,7 @@ static int natsemi_poll(struct napi_struct *napi, int budget)
2248 np->intr_status = readl(ioaddr + IntrStatus); 2248 np->intr_status = readl(ioaddr + IntrStatus);
2249 } while (np->intr_status); 2249 } while (np->intr_status);
2250 2250
2251 netif_rx_complete(dev, napi); 2251 netif_rx_complete(napi);
2252 2252
2253 /* Reenable interrupts providing nothing is trying to shut 2253 /* Reenable interrupts providing nothing is trying to shut
2254 * the chip down. */ 2254 * the chip down. */
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 6876bfd4455a..ba01524b5531 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -1583,7 +1583,7 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)
1583 } 1583 }
1584 1584
1585 if ((work_done < budget) && tx_complete) { 1585 if ((work_done < budget) && tx_complete) {
1586 netif_rx_complete(adapter->netdev, &adapter->napi); 1586 netif_rx_complete(&adapter->napi);
1587 netxen_nic_enable_int(adapter); 1587 netxen_nic_enable_int(adapter);
1588 } 1588 }
1589 1589
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index f219f16ec97a..5698c155bbf3 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(np->dev, napi); 3672 netif_rx_complete(napi);
3673 niu_ldg_rearm(np, lp, 1); 3673 niu_ldg_rearm(np, lp, 1);
3674 } 3674 }
3675 return work_done; 3675 return work_done;
@@ -4088,12 +4088,12 @@ static void __niu_fastpath_interrupt(struct niu *np, int ldg, u64 v0)
4088static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp, 4088static void niu_schedule_napi(struct niu *np, struct niu_ldg *lp,
4089 u64 v0, u64 v1, u64 v2) 4089 u64 v0, u64 v1, u64 v2)
4090{ 4090{
4091 if (likely(netif_rx_schedule_prep(np->dev, &lp->napi))) { 4091 if (likely(netif_rx_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(np->dev, &lp->napi); 4096 __netif_rx_schedule(&lp->napi);
4097 } 4097 }
4098} 4098}
4099 4099
diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index fcbf6ccd0a85..dcd199045613 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -971,7 +971,7 @@ static irqreturn_t pasemi_mac_rx_intr(int irq, void *data)
971 if (*chan->status & PAS_STATUS_ERROR) 971 if (*chan->status & PAS_STATUS_ERROR)
972 reg |= PAS_IOB_DMA_RXCH_RESET_DINTC; 972 reg |= PAS_IOB_DMA_RXCH_RESET_DINTC;
973 973
974 netif_rx_schedule(dev, &mac->napi); 974 netif_rx_schedule(&mac->napi);
975 975
976 write_iob_reg(PAS_IOB_DMA_RXCH_RESET(chan->chno), reg); 976 write_iob_reg(PAS_IOB_DMA_RXCH_RESET(chan->chno), reg);
977 977
@@ -1011,7 +1011,7 @@ static irqreturn_t pasemi_mac_tx_intr(int irq, void *data)
1011 1011
1012 mod_timer(&txring->clean_timer, jiffies + (TX_CLEAN_INTERVAL)*2); 1012 mod_timer(&txring->clean_timer, jiffies + (TX_CLEAN_INTERVAL)*2);
1013 1013
1014 netif_rx_schedule(mac->netdev, &mac->napi); 1014 netif_rx_schedule(&mac->napi);
1015 1015
1016 if (reg) 1016 if (reg)
1017 write_iob_reg(PAS_IOB_DMA_TXCH_RESET(chan->chno), reg); 1017 write_iob_reg(PAS_IOB_DMA_TXCH_RESET(chan->chno), reg);
@@ -1641,7 +1641,7 @@ static int pasemi_mac_poll(struct napi_struct *napi, int budget)
1641 pkts = pasemi_mac_clean_rx(rx_ring(mac), budget); 1641 pkts = pasemi_mac_clean_rx(rx_ring(mac), budget);
1642 if (pkts < budget) { 1642 if (pkts < budget) {
1643 /* all done, no more packets present */ 1643 /* all done, no more packets present */
1644 netif_rx_complete(dev, napi); 1644 netif_rx_complete(napi);
1645 1645
1646 pasemi_mac_restart_rx_intr(mac); 1646 pasemi_mac_restart_rx_intr(mac);
1647 pasemi_mac_restart_tx_intr(mac); 1647 pasemi_mac_restart_tx_intr(mac);
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index f2b192c80e17..044b7b07f5f4 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(dev, napi); 1400 __netif_rx_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);
@@ -2586,14 +2586,14 @@ pcnet32_interrupt(int irq, void *dev_id)
2586 dev->name, csr0); 2586 dev->name, csr0);
2587 /* unlike for the lance, there is no restart needed */ 2587 /* unlike for the lance, there is no restart needed */
2588 } 2588 }
2589 if (netif_rx_schedule_prep(dev, &lp->napi)) { 2589 if (netif_rx_schedule_prep(&lp->napi)) {
2590 u16 val; 2590 u16 val;
2591 /* set interrupt masks */ 2591 /* set interrupt masks */
2592 val = lp->a.read_csr(ioaddr, CSR3); 2592 val = lp->a.read_csr(ioaddr, CSR3);
2593 val |= 0x5f00; 2593 val |= 0x5f00;
2594 lp->a.write_csr(ioaddr, CSR3, val); 2594 lp->a.write_csr(ioaddr, CSR3, val);
2595 mmiowb(); 2595 mmiowb();
2596 __netif_rx_schedule(dev, &lp->napi); 2596 __netif_rx_schedule(&lp->napi);
2597 break; 2597 break;
2598 } 2598 }
2599 csr0 = lp->a.read_csr(ioaddr, CSR0); 2599 csr0 = lp->a.read_csr(ioaddr, CSR0);
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 6b7ed1a5b3b7..33e8e62b4502 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2293,7 +2293,7 @@ static int ql_poll(struct napi_struct *napi, int budget)
2293 2293
2294 if (tx_cleaned + rx_cleaned != budget) { 2294 if (tx_cleaned + rx_cleaned != budget) {
2295 spin_lock_irqsave(&qdev->hw_lock, hw_flags); 2295 spin_lock_irqsave(&qdev->hw_lock, hw_flags);
2296 __netif_rx_complete(ndev, napi); 2296 __netif_rx_complete(napi);
2297 ql_update_small_bufq_prod_index(qdev); 2297 ql_update_small_bufq_prod_index(qdev);
2298 ql_update_lrg_bufq_prod_index(qdev); 2298 ql_update_lrg_bufq_prod_index(qdev);
2299 writel(qdev->rsp_consumer_index, 2299 writel(qdev->rsp_consumer_index,
@@ -2352,8 +2352,8 @@ static irqreturn_t ql3xxx_isr(int irq, void *dev_id)
2352 spin_unlock(&qdev->adapter_lock); 2352 spin_unlock(&qdev->adapter_lock);
2353 } else if (value & ISP_IMR_DISABLE_CMPL_INT) { 2353 } else if (value & ISP_IMR_DISABLE_CMPL_INT) {
2354 ql_disable_interrupts(qdev); 2354 ql_disable_interrupts(qdev);
2355 if (likely(netif_rx_schedule_prep(ndev, &qdev->napi))) { 2355 if (likely(netif_rx_schedule_prep(&qdev->napi))) {
2356 __netif_rx_schedule(ndev, &qdev->napi); 2356 __netif_rx_schedule(&qdev->napi);
2357 } 2357 }
2358 } else { 2358 } else {
2359 return IRQ_NONE; 2359 return IRQ_NONE;
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 225930fda5af..02147082786d 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1647,7 +1647,7 @@ static int ql_napi_poll_msix(struct napi_struct *napi, int budget)
1647 rx_ring->cq_id); 1647 rx_ring->cq_id);
1648 1648
1649 if (work_done < budget) { 1649 if (work_done < budget) {
1650 __netif_rx_complete(qdev->ndev, napi); 1650 __netif_rx_complete(napi);
1651 ql_enable_completion_interrupt(qdev, rx_ring->irq); 1651 ql_enable_completion_interrupt(qdev, rx_ring->irq);
1652 } 1652 }
1653 return work_done; 1653 return work_done;
@@ -1733,7 +1733,7 @@ static irqreturn_t qlge_msix_rx_isr(int irq, void *dev_id)
1733{ 1733{
1734 struct rx_ring *rx_ring = dev_id; 1734 struct rx_ring *rx_ring = dev_id;
1735 struct ql_adapter *qdev = rx_ring->qdev; 1735 struct ql_adapter *qdev = rx_ring->qdev;
1736 netif_rx_schedule(qdev->ndev, &rx_ring->napi); 1736 netif_rx_schedule(&rx_ring->napi);
1737 return IRQ_HANDLED; 1737 return IRQ_HANDLED;
1738} 1738}
1739 1739
@@ -1819,8 +1819,7 @@ static irqreturn_t qlge_isr(int irq, void *dev_id)
1819 &rx_ring->rx_work, 1819 &rx_ring->rx_work,
1820 0); 1820 0);
1821 else 1821 else
1822 netif_rx_schedule(qdev->ndev, 1822 netif_rx_schedule(&rx_ring->napi);
1823 &rx_ring->napi);
1824 work_done++; 1823 work_done++;
1825 } 1824 }
1826 } 1825 }
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index aff1cc627c05..53bbddfc8c95 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -667,7 +667,7 @@ static int r6040_poll(struct napi_struct *napi, int budget)
667 work_done = r6040_rx(dev, budget); 667 work_done = r6040_rx(dev, budget);
668 668
669 if (work_done < budget) { 669 if (work_done < budget) {
670 netif_rx_complete(dev, napi); 670 netif_rx_complete(napi);
671 /* Enable RX interrupt */ 671 /* Enable RX interrupt */
672 iowrite16(ioread16(ioaddr + MIER) | RX_INTS, ioaddr + MIER); 672 iowrite16(ioread16(ioaddr + MIER) | RX_INTS, ioaddr + MIER);
673 } 673 }
@@ -704,7 +704,7 @@ static irqreturn_t r6040_interrupt(int irq, void *dev_id)
704 704
705 /* Mask off RX interrupt */ 705 /* Mask off RX interrupt */
706 misr &= ~RX_INTS; 706 misr &= ~RX_INTS;
707 netif_rx_schedule(dev, &lp->napi); 707 netif_rx_schedule(&lp->napi);
708 } 708 }
709 709
710 /* TX interrupt request */ 710 /* TX interrupt request */
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index dddf6aeff498..2c73ca606b35 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(dev, &tp->napi))) 3584 if (likely(netif_rx_schedule_prep(&tp->napi)))
3585 __netif_rx_schedule(dev, &tp->napi); 3585 __netif_rx_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(dev, napi); 3606 netif_rx_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 1b489df80fa6..512861923c6b 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(dev, napi); 2855 netif_rx_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;
@@ -2890,7 +2890,7 @@ static int s2io_poll_inta(struct napi_struct *napi, int budget)
2890 break; 2890 break;
2891 } 2891 }
2892 if (pkts_processed < budget_org) { 2892 if (pkts_processed < budget_org) {
2893 netif_rx_complete(dev, napi); 2893 netif_rx_complete(napi);
2894 /* Re enable the Rx interrupts for the ring */ 2894 /* Re enable the Rx interrupts for the ring */
2895 writeq(0, &bar0->rx_traffic_mask); 2895 writeq(0, &bar0->rx_traffic_mask);
2896 readl(&bar0->rx_traffic_mask); 2896 readl(&bar0->rx_traffic_mask);
@@ -4344,7 +4344,7 @@ static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id)
4344 val8 = (ring->ring_no == 0) ? 0x7f : 0xff; 4344 val8 = (ring->ring_no == 0) ? 0x7f : 0xff;
4345 writeb(val8, addr); 4345 writeb(val8, addr);
4346 val8 = readb(addr); 4346 val8 = readb(addr);
4347 netif_rx_schedule(dev, &ring->napi); 4347 netif_rx_schedule(&ring->napi);
4348 } else { 4348 } else {
4349 rx_intr_handler(ring, 0); 4349 rx_intr_handler(ring, 0);
4350 s2io_chk_rx_buffers(sp, ring); 4350 s2io_chk_rx_buffers(sp, ring);
@@ -4791,7 +4791,7 @@ static irqreturn_t s2io_isr(int irq, void *dev_id)
4791 4791
4792 if (config->napi) { 4792 if (config->napi) {
4793 if (reason & GEN_INTR_RXTRAFFIC) { 4793 if (reason & GEN_INTR_RXTRAFFIC) {
4794 netif_rx_schedule(dev, &sp->napi); 4794 netif_rx_schedule(&sp->napi);
4795 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_mask); 4795 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_mask);
4796 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_int); 4796 writeq(S2IO_MINUS_ONE, &bar0->rx_traffic_int);
4797 readl(&bar0->rx_traffic_int); 4797 readl(&bar0->rx_traffic_int);
diff --git a/drivers/net/sb1250-mac.c b/drivers/net/sb1250-mac.c
index 480caec1e024..31e38fae017f 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(dev, &sc->napi)) { 2042 if (netif_rx_schedule_prep(&sc->napi)) {
2043 __raw_writeq(0, sc->sbm_imr); 2043 __raw_writeq(0, sc->sbm_imr);
2044 __netif_rx_schedule(dev, &sc->napi); 2044 __netif_rx_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(dev, napi); 2670 netif_rx_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 086629c0fe57..42934ba2030d 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -230,7 +230,7 @@ static int efx_poll(struct napi_struct *napi, int budget)
230 * since efx_channel_processed() will have no effect if 230 * since efx_channel_processed() will have no effect if
231 * interrupts have already been disabled. 231 * interrupts have already been disabled.
232 */ 232 */
233 netif_rx_complete(napi_dev, napi); 233 netif_rx_complete(napi);
234 efx_channel_processed(channel); 234 efx_channel_processed(channel);
235 } 235 }
236 236
diff --git a/drivers/net/sfc/efx.h b/drivers/net/sfc/efx.h
index dd0d45b9e71f..0dd7a532c78a 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_dev, &channel->napi_str); 80 netif_rx_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 f73ee7974003..c9dbb06f8c94 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(dev, napi); 3217 __netif_rx_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(hw->dev[0], &skge->napi); 3380 netif_rx_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(hw->dev[1], &skge->napi); 3400 netif_rx_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 fa28542b47d5..ecdde03d4167 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(dev, napi); 987 netif_rx_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);
diff --git a/drivers/net/smsc9420.c b/drivers/net/smsc9420.c
index 940220f60921..27e017d96966 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->dev, &pd->napi); 669 netif_rx_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(dev, &pd->napi); 892 netif_rx_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 325fbc9612c9..c5c123d3af57 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1302,7 +1302,7 @@ static int spider_net_poll(struct napi_struct *napi, int budget)
1302 /* if all packets are in the stack, enable interrupts and return 0 */ 1302 /* if all packets are in the stack, enable interrupts and return 0 */
1303 /* if not, return 1 */ 1303 /* if not, return 1 */
1304 if (packets_done < budget) { 1304 if (packets_done < budget) {
1305 netif_rx_complete(netdev, napi); 1305 netif_rx_complete(napi);
1306 spider_net_rx_irq_on(card); 1306 spider_net_rx_irq_on(card);
1307 card->ignore_rx_ramfull = 0; 1307 card->ignore_rx_ramfull = 0;
1308 } 1308 }
@@ -1529,8 +1529,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg,
1529 spider_net_refill_rx_chain(card); 1529 spider_net_refill_rx_chain(card);
1530 spider_net_enable_rxdmac(card); 1530 spider_net_enable_rxdmac(card);
1531 card->num_rx_ints ++; 1531 card->num_rx_ints ++;
1532 netif_rx_schedule(card->netdev, 1532 netif_rx_schedule(&card->napi);
1533 &card->napi);
1534 } 1533 }
1535 show_error = 0; 1534 show_error = 0;
1536 break; 1535 break;
@@ -1550,8 +1549,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg,
1550 spider_net_refill_rx_chain(card); 1549 spider_net_refill_rx_chain(card);
1551 spider_net_enable_rxdmac(card); 1550 spider_net_enable_rxdmac(card);
1552 card->num_rx_ints ++; 1551 card->num_rx_ints ++;
1553 netif_rx_schedule(card->netdev, 1552 netif_rx_schedule(&card->napi);
1554 &card->napi);
1555 show_error = 0; 1553 show_error = 0;
1556 break; 1554 break;
1557 1555
@@ -1565,8 +1563,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg,
1565 spider_net_refill_rx_chain(card); 1563 spider_net_refill_rx_chain(card);
1566 spider_net_enable_rxdmac(card); 1564 spider_net_enable_rxdmac(card);
1567 card->num_rx_ints ++; 1565 card->num_rx_ints ++;
1568 netif_rx_schedule(card->netdev, 1566 netif_rx_schedule(&card->napi);
1569 &card->napi);
1570 show_error = 0; 1567 show_error = 0;
1571 break; 1568 break;
1572 1569
@@ -1660,11 +1657,11 @@ spider_net_interrupt(int irq, void *ptr)
1660 1657
1661 if (status_reg & SPIDER_NET_RXINT ) { 1658 if (status_reg & SPIDER_NET_RXINT ) {
1662 spider_net_rx_irq_off(card); 1659 spider_net_rx_irq_off(card);
1663 netif_rx_schedule(netdev, &card->napi); 1660 netif_rx_schedule(&card->napi);
1664 card->num_rx_ints ++; 1661 card->num_rx_ints ++;
1665 } 1662 }
1666 if (status_reg & SPIDER_NET_TXINT) 1663 if (status_reg & SPIDER_NET_TXINT)
1667 netif_rx_schedule(netdev, &card->napi); 1664 netif_rx_schedule(&card->napi);
1668 1665
1669 if (status_reg & SPIDER_NET_LINKINT) 1666 if (status_reg & SPIDER_NET_LINKINT)
1670 spider_net_link_reset(netdev); 1667 spider_net_link_reset(netdev);
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 0358809f409c..d5b9dd842c61 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -1290,8 +1290,8 @@ static irqreturn_t intr_handler(int irq, void *dev_instance)
1290 if (intr_status & (IntrRxDone | IntrRxEmpty)) { 1290 if (intr_status & (IntrRxDone | IntrRxEmpty)) {
1291 u32 enable; 1291 u32 enable;
1292 1292
1293 if (likely(netif_rx_schedule_prep(dev, &np->napi))) { 1293 if (likely(netif_rx_schedule_prep(&np->napi))) {
1294 __netif_rx_schedule(dev, &np->napi); 1294 __netif_rx_schedule(&np->napi);
1295 enable = readl(ioaddr + IntrEnable); 1295 enable = readl(ioaddr + IntrEnable);
1296 enable &= ~(IntrRxDone | IntrRxEmpty); 1296 enable &= ~(IntrRxDone | IntrRxEmpty);
1297 writel(enable, ioaddr + IntrEnable); 1297 writel(enable, ioaddr + IntrEnable);
@@ -1530,7 +1530,7 @@ static int netdev_poll(struct napi_struct *napi, int budget)
1530 intr_status = readl(ioaddr + IntrStatus); 1530 intr_status = readl(ioaddr + IntrStatus);
1531 } while (intr_status & (IntrRxDone | IntrRxEmpty)); 1531 } while (intr_status & (IntrRxDone | IntrRxEmpty));
1532 1532
1533 netif_rx_complete(dev, napi); 1533 netif_rx_complete(napi);
1534 intr_status = readl(ioaddr + IntrEnable); 1534 intr_status = readl(ioaddr + IntrEnable);
1535 intr_status |= IntrRxDone | IntrRxEmpty; 1535 intr_status |= IntrRxDone | IntrRxEmpty;
1536 writel(intr_status, ioaddr + IntrEnable); 1536 writel(intr_status, ioaddr + IntrEnable);
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index f4b0beec4d19..8a7460412482 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(dev, napi); 924 __netif_rx_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(dev, &gp->napi)) { 947 if (netif_rx_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(dev, &gp->napi); 957 __netif_rx_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 308f365270e9..bcd0e60cbda9 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(dev, &lp->napi)) 1612 if (netif_rx_schedule_prep(&lp->napi))
1613 __netif_rx_schedule(dev, &lp->napi); 1613 __netif_rx_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(dev, napi); 1922 netif_rx_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 5b83fbb02013..a10a83a11d9f 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(ndev, &priv->napi))) { 268 if (likely(netif_rx_schedule_prep(&priv->napi))) {
269 __netif_rx_schedule(ndev, &priv->napi); 269 __netif_rx_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
@@ -289,7 +289,6 @@ static irqreturn_t bdx_isr_napi(int irq, void *dev)
289static int bdx_poll(struct napi_struct *napi, int budget) 289static int bdx_poll(struct napi_struct *napi, int budget)
290{ 290{
291 struct bdx_priv *priv = container_of(napi, struct bdx_priv, napi); 291 struct bdx_priv *priv = container_of(napi, struct bdx_priv, napi);
292 struct net_device *dev = priv->ndev;
293 int work_done; 292 int work_done;
294 293
295 ENTER; 294 ENTER;
@@ -303,7 +302,7 @@ static int bdx_poll(struct napi_struct *napi, int budget)
303 * device lock and allow waiting tasks (eg rmmod) to advance) */ 302 * device lock and allow waiting tasks (eg rmmod) to advance) */
304 priv->napi_stop = 0; 303 priv->napi_stop = 0;
305 304
306 netif_rx_complete(dev, napi); 305 netif_rx_complete(napi);
307 bdx_enable_interrupts(priv); 306 bdx_enable_interrupts(priv);
308 } 307 }
309 return work_done; 308 return work_done;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 7971d802508d..04ae1e86aeaa 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -4451,7 +4451,7 @@ static int tg3_poll(struct napi_struct *napi, int budget)
4451 sblk->status &= ~SD_STATUS_UPDATED; 4451 sblk->status &= ~SD_STATUS_UPDATED;
4452 4452
4453 if (likely(!tg3_has_work(tp))) { 4453 if (likely(!tg3_has_work(tp))) {
4454 netif_rx_complete(tp->dev, napi); 4454 netif_rx_complete(napi);
4455 tg3_restart_ints(tp); 4455 tg3_restart_ints(tp);
4456 break; 4456 break;
4457 } 4457 }
@@ -4461,7 +4461,7 @@ static int tg3_poll(struct napi_struct *napi, int budget)
4461 4461
4462tx_recovery: 4462tx_recovery:
4463 /* work_done is guaranteed to be less than budget. */ 4463 /* work_done is guaranteed to be less than budget. */
4464 netif_rx_complete(tp->dev, napi); 4464 netif_rx_complete(napi);
4465 schedule_work(&tp->reset_task); 4465 schedule_work(&tp->reset_task);
4466 return work_done; 4466 return work_done;
4467} 4467}
@@ -4510,7 +4510,7 @@ static irqreturn_t tg3_msi_1shot(int irq, void *dev_id)
4510 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]); 4510 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]);
4511 4511
4512 if (likely(!tg3_irq_sync(tp))) 4512 if (likely(!tg3_irq_sync(tp)))
4513 netif_rx_schedule(dev, &tp->napi); 4513 netif_rx_schedule(&tp->napi);
4514 4514
4515 return IRQ_HANDLED; 4515 return IRQ_HANDLED;
4516} 4516}
@@ -4535,7 +4535,7 @@ static irqreturn_t tg3_msi(int irq, void *dev_id)
4535 */ 4535 */
4536 tw32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001); 4536 tw32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001);
4537 if (likely(!tg3_irq_sync(tp))) 4537 if (likely(!tg3_irq_sync(tp)))
4538 netif_rx_schedule(dev, &tp->napi); 4538 netif_rx_schedule(&tp->napi);
4539 4539
4540 return IRQ_RETVAL(1); 4540 return IRQ_RETVAL(1);
4541} 4541}
@@ -4577,7 +4577,7 @@ static irqreturn_t tg3_interrupt(int irq, void *dev_id)
4577 sblk->status &= ~SD_STATUS_UPDATED; 4577 sblk->status &= ~SD_STATUS_UPDATED;
4578 if (likely(tg3_has_work(tp))) { 4578 if (likely(tg3_has_work(tp))) {
4579 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]); 4579 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]);
4580 netif_rx_schedule(dev, &tp->napi); 4580 netif_rx_schedule(&tp->napi);
4581 } else { 4581 } else {
4582 /* No work, shared interrupt perhaps? re-enable 4582 /* No work, shared interrupt perhaps? re-enable
4583 * interrupts, and flush that PCI write 4583 * interrupts, and flush that PCI write
@@ -4623,7 +4623,7 @@ static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id)
4623 tw32_mailbox_f(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001); 4623 tw32_mailbox_f(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, 0x00000001);
4624 if (tg3_irq_sync(tp)) 4624 if (tg3_irq_sync(tp))
4625 goto out; 4625 goto out;
4626 if (netif_rx_schedule_prep(dev, &tp->napi)) { 4626 if (netif_rx_schedule_prep(&tp->napi)) {
4627 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]); 4627 prefetch(&tp->rx_rcb[tp->rx_rcb_ptr]);
4628 /* Update last_tag to mark that this status has been 4628 /* Update last_tag to mark that this status has been
4629 * seen. Because interrupt may be shared, we may be 4629 * seen. Because interrupt may be shared, we may be
@@ -4631,7 +4631,7 @@ static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id)
4631 * if tg3_poll() is not scheduled. 4631 * if tg3_poll() is not scheduled.
4632 */ 4632 */
4633 tp->last_tag = sblk->status_tag; 4633 tp->last_tag = sblk->status_tag;
4634 __netif_rx_schedule(dev, &tp->napi); 4634 __netif_rx_schedule(&tp->napi);
4635 } 4635 }
4636out: 4636out:
4637 return IRQ_RETVAL(handled); 4637 return IRQ_RETVAL(handled);
diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 271bc230c8a9..75461dbd4876 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(dev, napi); 891 netif_rx_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)
@@ -919,7 +919,7 @@ static void tsi108_rx_int(struct net_device *dev)
919 * from tsi108_check_rxring(). 919 * from tsi108_check_rxring().
920 */ 920 */
921 921
922 if (netif_rx_schedule_prep(dev, &data->napi)) { 922 if (netif_rx_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(dev, &data->napi); 933 __netif_rx_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 739d610d18c5..6c3428a37c0b 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(dev, &tp->napi); 106 netif_rx_schedule(&tp->napi);
107} 107}
108 108
109int tulip_poll(struct napi_struct *napi, int budget) 109int tulip_poll(struct napi_struct *napi, int budget)
@@ -300,7 +300,7 @@ int tulip_poll(struct napi_struct *napi, int budget)
300 300
301 /* Remove us from polling list and enable RX intr. */ 301 /* Remove us from polling list and enable RX intr. */
302 302
303 netif_rx_complete(dev, napi); 303 netif_rx_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:
@@ -336,7 +336,7 @@ int tulip_poll(struct napi_struct *napi, int budget)
336 * before we did netif_rx_complete(). See? We would lose it. */ 336 * before we did netif_rx_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(dev, napi); 339 netif_rx_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(dev, &tp->napi); 522 netif_rx_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 5386d9b73e6a..0009f4e34433 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1755,7 +1755,6 @@ static int
1755typhoon_poll(struct napi_struct *napi, int budget) 1755typhoon_poll(struct napi_struct *napi, int budget)
1756{ 1756{
1757 struct typhoon *tp = container_of(napi, struct typhoon, napi); 1757 struct typhoon *tp = container_of(napi, struct typhoon, napi);
1758 struct net_device *dev = tp->dev;
1759 struct typhoon_indexes *indexes = tp->indexes; 1758 struct typhoon_indexes *indexes = tp->indexes;
1760 int work_done; 1759 int work_done;
1761 1760
@@ -1784,7 +1783,7 @@ typhoon_poll(struct napi_struct *napi, int budget)
1784 } 1783 }
1785 1784
1786 if (work_done < budget) { 1785 if (work_done < budget) {
1787 netif_rx_complete(dev, napi); 1786 netif_rx_complete(napi);
1788 iowrite32(TYPHOON_INTR_NONE, 1787 iowrite32(TYPHOON_INTR_NONE,
1789 tp->ioaddr + TYPHOON_REG_INTR_MASK); 1788 tp->ioaddr + TYPHOON_REG_INTR_MASK);
1790 typhoon_post_pci_writes(tp->ioaddr); 1789 typhoon_post_pci_writes(tp->ioaddr);
@@ -1807,10 +1806,10 @@ typhoon_interrupt(int irq, void *dev_instance)
1807 1806
1808 iowrite32(intr_status, ioaddr + TYPHOON_REG_INTR_STATUS); 1807 iowrite32(intr_status, ioaddr + TYPHOON_REG_INTR_STATUS);
1809 1808
1810 if (netif_rx_schedule_prep(dev, &tp->napi)) { 1809 if (netif_rx_schedule_prep(&tp->napi)) {
1811 iowrite32(TYPHOON_INTR_ALL, ioaddr + TYPHOON_REG_INTR_MASK); 1810 iowrite32(TYPHOON_INTR_ALL, ioaddr + TYPHOON_REG_INTR_MASK);
1812 typhoon_post_pci_writes(ioaddr); 1811 typhoon_post_pci_writes(ioaddr);
1813 __netif_rx_schedule(dev, &tp->napi); 1812 __netif_rx_schedule(&tp->napi);
1814 } else { 1813 } else {
1815 printk(KERN_ERR "%s: Error, poll already scheduled\n", 1814 printk(KERN_ERR "%s: Error, poll already scheduled\n",
1816 dev->name); 1815 dev->name);
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 5c82f147f151..78a2ede19c5e 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3330,7 +3330,7 @@ static int ucc_geth_poll(struct napi_struct *napi, int budget)
3330 struct ucc_fast_private *uccf; 3330 struct ucc_fast_private *uccf;
3331 u32 uccm; 3331 u32 uccm;
3332 3332
3333 netif_rx_complete(dev, napi); 3333 netif_rx_complete(napi);
3334 uccf = ugeth->uccf; 3334 uccf = ugeth->uccf;
3335 uccm = in_be32(uccf->p_uccm); 3335 uccm = in_be32(uccf->p_uccm);
3336 uccm |= UCCE_RX_EVENTS; 3336 uccm |= UCCE_RX_EVENTS;
@@ -3364,10 +3364,10 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
3364 3364
3365 /* check for receive events that require processing */ 3365 /* check for receive events that require processing */
3366 if (ucce & UCCE_RX_EVENTS) { 3366 if (ucce & UCCE_RX_EVENTS) {
3367 if (netif_rx_schedule_prep(dev, &ugeth->napi)) { 3367 if (netif_rx_schedule_prep(&ugeth->napi)) {
3368 uccm &= ~UCCE_RX_EVENTS; 3368 uccm &= ~UCCE_RX_EVENTS;
3369 out_be32(uccf->p_uccm, uccm); 3369 out_be32(uccf->p_uccm, uccm);
3370 __netif_rx_schedule(dev, &ugeth->napi); 3370 __netif_rx_schedule(&ugeth->napi);
3371 } 3371 }
3372 } 3372 }
3373 3373
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index 8d405c83df8b..ac07cc6e3cb2 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(dev, napi); 592 netif_rx_complete(napi);
593 593
594 iowrite16(IntrRxDone | IntrRxErr | IntrRxEmpty| IntrRxOverflow | 594 iowrite16(IntrRxDone | IntrRxErr | IntrRxEmpty| IntrRxOverflow |
595 IntrRxDropped | IntrRxNoBuf | IntrTxAborted | 595 IntrRxDropped | IntrRxNoBuf | IntrTxAborted |
@@ -1318,7 +1318,7 @@ static irqreturn_t rhine_interrupt(int irq, void *dev_instance)
1318 IntrPCIErr | IntrStatsMax | IntrLinkChange, 1318 IntrPCIErr | IntrStatsMax | IntrLinkChange,
1319 ioaddr + IntrEnable); 1319 ioaddr + IntrEnable);
1320 1320
1321 netif_rx_schedule(dev, &rp->napi); 1321 netif_rx_schedule(&rp->napi);
1322 } 1322 }
1323 1323
1324 if (intr_status & (IntrTxErrSummary | IntrTxDone)) { 1324 if (intr_status & (IntrTxErrSummary | IntrTxDone)) {
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 71ca29cc184d..b7004ff36451 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->dev, &vi->napi)) { 377 if (netif_rx_schedule_prep(&vi->napi)) {
378 rvq->vq_ops->disable_cb(rvq); 378 rvq->vq_ops->disable_cb(rvq);
379 __netif_rx_schedule(vi->dev, &vi->napi); 379 __netif_rx_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(vi->dev, napi); 405 netif_rx_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(vi->dev, napi); 409 __netif_rx_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(dev, &vi->napi)) { 583 if (netif_rx_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(dev, &vi->napi); 585 __netif_rx_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 0bcc0b5f22d7..08b3536944fe 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(port->netdev, napi); 344 netif_rx_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->netdev, &port->napi); 362 netif_rx_schedule(&port->napi);
363 } 363 }
364 } 364 }
365 365
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index fe376fde4e89..761635be9104 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(dev, &np->napi); 199 netif_rx_schedule(&np->napi);
200} 200}
201 201
202static int netfront_tx_slot_available(struct netfront_info *np) 202static int netfront_tx_slot_available(struct netfront_info *np)
@@ -328,7 +328,7 @@ static int xennet_open(struct net_device *dev)
328 xennet_alloc_rx_buffers(dev); 328 xennet_alloc_rx_buffers(dev);
329 np->rx.sring->rsp_event = np->rx.rsp_cons + 1; 329 np->rx.sring->rsp_event = np->rx.rsp_cons + 1;
330 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx)) 330 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx))
331 netif_rx_schedule(dev, &np->napi); 331 netif_rx_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(dev, napi); 982 __netif_rx_complete(napi);
983 983
984 local_irq_restore(flags); 984 local_irq_restore(flags);
985 } 985 }
@@ -1310,7 +1310,7 @@ static irqreturn_t xennet_interrupt(int irq, void *dev_id)
1310 xennet_tx_buf_gc(dev); 1310 xennet_tx_buf_gc(dev);
1311 /* Under tx_lock: protects access to rx shared-ring indexes. */ 1311 /* Under tx_lock: protects access to rx shared-ring indexes. */
1312 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx)) 1312 if (RING_HAS_UNCONSUMED_RESPONSES(&np->rx))
1313 netif_rx_schedule(dev, &np->napi); 1313 netif_rx_schedule(&np->napi);
1314 } 1314 }
1315 1315
1316 spin_unlock_irqrestore(&np->tx_lock, flags); 1316 spin_unlock_irqrestore(&np->tx_lock, flags);
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 58856b6737fb..41e1224651cf 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1555,8 +1555,7 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits)
1555} 1555}
1556 1556
1557/* Test if receive needs to be scheduled but only if up */ 1557/* Test if receive needs to be scheduled but only if up */
1558static inline int netif_rx_schedule_prep(struct net_device *dev, 1558static inline int netif_rx_schedule_prep(struct napi_struct *napi)
1559 struct napi_struct *napi)
1560{ 1559{
1561 return napi_schedule_prep(napi); 1560 return napi_schedule_prep(napi);
1562} 1561}
@@ -1564,27 +1563,24 @@ static inline int netif_rx_schedule_prep(struct net_device *dev,
1564/* Add interface to tail of rx poll list. This assumes that _prep has 1563/* Add interface to tail of rx poll list. This assumes that _prep has
1565 * already been called and returned 1. 1564 * already been called and returned 1.
1566 */ 1565 */
1567static inline void __netif_rx_schedule(struct net_device *dev, 1566static inline void __netif_rx_schedule(struct napi_struct *napi)
1568 struct napi_struct *napi)
1569{ 1567{
1570 __napi_schedule(napi); 1568 __napi_schedule(napi);
1571} 1569}
1572 1570
1573/* Try to reschedule poll. Called by irq handler. */ 1571/* Try to reschedule poll. Called by irq handler. */
1574 1572
1575static inline void netif_rx_schedule(struct net_device *dev, 1573static inline void netif_rx_schedule(struct napi_struct *napi)
1576 struct napi_struct *napi)
1577{ 1574{
1578 if (netif_rx_schedule_prep(dev, napi)) 1575 if (netif_rx_schedule_prep(napi))
1579 __netif_rx_schedule(dev, napi); 1576 __netif_rx_schedule(napi);
1580} 1577}
1581 1578
1582/* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */ 1579/* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */
1583static inline int netif_rx_reschedule(struct net_device *dev, 1580static inline int netif_rx_reschedule(struct napi_struct *napi)
1584 struct napi_struct *napi)
1585{ 1581{
1586 if (napi_schedule_prep(napi)) { 1582 if (napi_schedule_prep(napi)) {
1587 __netif_rx_schedule(dev, napi); 1583 __netif_rx_schedule(napi);
1588 return 1; 1584 return 1;
1589 } 1585 }
1590 return 0; 1586 return 0;
@@ -1593,8 +1589,7 @@ static inline int netif_rx_reschedule(struct net_device *dev,
1593/* same as netif_rx_complete, except that local_irq_save(flags) 1589/* same as netif_rx_complete, except that local_irq_save(flags)
1594 * has already been issued 1590 * has already been issued
1595 */ 1591 */
1596static inline void __netif_rx_complete(struct net_device *dev, 1592static inline void __netif_rx_complete(struct napi_struct *napi)
1597 struct napi_struct *napi)
1598{ 1593{
1599 __napi_complete(napi); 1594 __napi_complete(napi);
1600} 1595}
@@ -1604,8 +1599,7 @@ static inline void __netif_rx_complete(struct net_device *dev,
1604 * it completes the work. The device cannot be out of poll list at this 1599 * it completes the work. The device cannot be out of poll list at this
1605 * moment, it is BUG(). 1600 * moment, it is BUG().
1606 */ 1601 */
1607static inline void netif_rx_complete(struct net_device *dev, 1602static inline void netif_rx_complete(struct napi_struct *napi)
1608 struct napi_struct *napi)
1609{ 1603{
1610 napi_complete(napi); 1604 napi_complete(napi);
1611} 1605}