Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers: net: generalize napi_complete_done()

napi_complete_done() allows to opt-in for gro_flush_timeout,
added back in linux-3.19, commit 3b47d30396ba
("net: gro: add a per device gro flush timer")

This allows for more efficient GRO aggregation without
sacrifying latencies.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Eric Dumazet and committed by
David S. Miller
6ad20165 63a6fff3

+132 -137
+1 -1
drivers/net/can/at91_can.c
··· 813 813 u32 reg_ier = AT91_IRQ_ERR_FRAME; 814 814 reg_ier |= get_irq_mb_rx(priv) & ~AT91_MB_MASK(priv->rx_next); 815 815 816 - napi_complete(napi); 816 + napi_complete_done(napi, work_done); 817 817 at91_write(priv, AT91_IER, reg_ier); 818 818 } 819 819
+1 -1
drivers/net/can/c_can/c_can.c
··· 1070 1070 1071 1071 end: 1072 1072 if (work_done < quota) { 1073 - napi_complete(napi); 1073 + napi_complete_done(napi, work_done); 1074 1074 /* enable all IRQs if we are not in bus off state */ 1075 1075 if (priv->can.state != CAN_STATE_BUS_OFF) 1076 1076 c_can_irq_control(priv, true);
+1 -1
drivers/net/can/flexcan.c
··· 703 703 work_done += flexcan_poll_bus_err(dev, reg_esr); 704 704 705 705 if (work_done < quota) { 706 - napi_complete(napi); 706 + napi_complete_done(napi, work_done); 707 707 /* enable IRQs */ 708 708 flexcan_write(FLEXCAN_IFLAG_DEFAULT, &regs->imask1); 709 709 flexcan_write(priv->reg_ctrl_default, &regs->ctrl);
+1 -1
drivers/net/can/ifi_canfd/ifi_canfd.c
··· 578 578 work_done += ifi_canfd_do_rx_poll(ndev, quota - work_done); 579 579 580 580 if (work_done < quota) { 581 - napi_complete(napi); 581 + napi_complete_done(napi, work_done); 582 582 ifi_canfd_irq_enable(ndev, 1); 583 583 } 584 584
+1 -1
drivers/net/can/janz-ican3.c
··· 1475 1475 /* We have processed all packets that the adapter had, but it 1476 1476 * was less than our budget, stop polling */ 1477 1477 if (received < budget) 1478 - napi_complete(napi); 1478 + napi_complete_done(napi, received); 1479 1479 1480 1480 spin_lock_irqsave(&mod->lock, flags); 1481 1481
+1 -1
drivers/net/can/m_can/m_can.c
··· 730 730 work_done += m_can_do_rx_poll(dev, (quota - work_done)); 731 731 732 732 if (work_done < quota) { 733 - napi_complete(napi); 733 + napi_complete_done(napi, work_done); 734 734 m_can_enable_all_interrupts(priv); 735 735 } 736 736
+1 -1
drivers/net/can/rcar/rcar_can.c
··· 695 695 } 696 696 /* All packets processed */ 697 697 if (num_pkts < quota) { 698 - napi_complete(napi); 698 + napi_complete_done(napi, num_pkts); 699 699 priv->ier |= RCAR_CAN_IER_RXFIE; 700 700 writeb(priv->ier, &priv->regs->ier); 701 701 }
+1 -1
drivers/net/can/rcar/rcar_canfd.c
··· 1512 1512 1513 1513 /* All packets processed */ 1514 1514 if (num_pkts < quota) { 1515 - napi_complete(napi); 1515 + napi_complete_done(napi, num_pkts); 1516 1516 /* Enable Rx FIFO interrupts */ 1517 1517 rcar_canfd_set_bit(priv->base, RCANFD_RFCC(ridx), 1518 1518 RCANFD_RFCC_RFIE);
+1 -1
drivers/net/can/xilinx_can.c
··· 726 726 can_led_event(ndev, CAN_LED_EVENT_RX); 727 727 728 728 if (work_done < quota) { 729 - napi_complete(napi); 729 + napi_complete_done(napi, work_done); 730 730 ier = priv->read_reg(priv, XCAN_IER_OFFSET); 731 731 ier |= (XCAN_IXR_RXOK_MASK | XCAN_IXR_RXNEMP_MASK); 732 732 priv->write_reg(priv, XCAN_IER_OFFSET, ier);
+1 -1
drivers/net/ethernet/3com/typhoon.c
··· 1753 1753 } 1754 1754 1755 1755 if (work_done < budget) { 1756 - napi_complete(napi); 1756 + napi_complete_done(napi, work_done); 1757 1757 iowrite32(TYPHOON_INTR_NONE, 1758 1758 tp->ioaddr + TYPHOON_REG_INTR_MASK); 1759 1759 typhoon_post_pci_writes(tp->ioaddr);
+1 -1
drivers/net/ethernet/adi/bfin_mac.c
··· 1274 1274 } 1275 1275 1276 1276 if (i < budget) { 1277 - napi_complete(napi); 1277 + napi_complete_done(napi, i); 1278 1278 if (test_and_clear_bit(BFIN_MAC_RX_IRQ_DISABLED, &lp->flags)) 1279 1279 enable_irq(IRQ_MAC_RX); 1280 1280 }
+1 -1
drivers/net/ethernet/agere/et131x.c
··· 3575 3575 et131x_handle_send_pkts(adapter); 3576 3576 3577 3577 if (work_done < budget) { 3578 - napi_complete(&adapter->napi); 3578 + napi_complete_done(&adapter->napi, work_done); 3579 3579 et131x_enable_interrupts(adapter); 3580 3580 } 3581 3581
+1 -1
drivers/net/ethernet/altera/altera_tse_main.c
··· 513 513 514 514 if (rxcomplete < budget) { 515 515 516 - napi_complete(napi); 516 + napi_complete_done(napi, rxcomplete); 517 517 518 518 netdev_dbg(priv->dev, 519 519 "NAPI Complete, did %d packets with budget %d\n",
+1 -1
drivers/net/ethernet/apm/xgene/xgene_enet_main.c
··· 840 840 processed = xgene_enet_process_ring(ring, budget); 841 841 842 842 if (processed != budget) { 843 - napi_complete(napi); 843 + napi_complete_done(napi, processed); 844 844 enable_irq(ring->irq); 845 845 } 846 846
+1 -1
drivers/net/ethernet/aquantia/atlantic/aq_vec.c
··· 97 97 work_done = budget; 98 98 99 99 if (work_done < budget) { 100 - napi_complete(napi); 100 + napi_complete_done(napi, work_done); 101 101 self->aq_hw_ops->hw_irq_enable(self->aq_hw, 102 102 1U << self->aq_ring_param.vec_idx); 103 103 }
+1 -1
drivers/net/ethernet/arc/emac_main.c
··· 275 275 276 276 work_done = arc_emac_rx(ndev, budget); 277 277 if (work_done < budget) { 278 - napi_complete(napi); 278 + napi_complete_done(napi, work_done); 279 279 arc_reg_or(priv, R_ENABLE, RXINT_MASK | TXINT_MASK); 280 280 } 281 281
+1 -1
drivers/net/ethernet/atheros/alx/main.c
··· 311 311 if (!tx_complete || work == budget) 312 312 return budget; 313 313 314 - napi_complete(&np->napi); 314 + napi_complete_done(&np->napi, work); 315 315 316 316 /* enable interrupt */ 317 317 if (alx->flags & ALX_FLAG_USING_MSIX) {
+1 -1
drivers/net/ethernet/atheros/atl1c/atl1c_main.c
··· 1892 1892 1893 1893 if (work_done < budget) { 1894 1894 quit_polling: 1895 - napi_complete(napi); 1895 + napi_complete_done(napi, work_done); 1896 1896 adapter->hw.intr_mask |= ISR_RX_PKT; 1897 1897 AT_WRITE_REG(&adapter->hw, REG_IMR, adapter->hw.intr_mask); 1898 1898 }
+1 -1
drivers/net/ethernet/atheros/atl1e/atl1e_main.c
··· 1526 1526 /* If no Tx and not enough Rx work done, exit the polling mode */ 1527 1527 if (work_done < budget) { 1528 1528 quit_polling: 1529 - napi_complete(napi); 1529 + napi_complete_done(napi, work_done); 1530 1530 imr_data = AT_READ_REG(&adapter->hw, REG_IMR); 1531 1531 AT_WRITE_REG(&adapter->hw, REG_IMR, imr_data | ISR_RX_EVENT); 1532 1532 /* test debug */
+1 -1
drivers/net/ethernet/atheros/atlx/atl1.c
··· 2457 2457 if (work_done >= budget) 2458 2458 return work_done; 2459 2459 2460 - napi_complete(napi); 2460 + napi_complete_done(napi, work_done); 2461 2461 /* re-enable Interrupt */ 2462 2462 if (likely(adapter->int_enabled)) 2463 2463 atlx_imr_set(adapter, IMR_NORMAL_MASK);
+1 -1
drivers/net/ethernet/broadcom/b44.c
··· 902 902 } 903 903 904 904 if (work_done < budget) { 905 - napi_complete(napi); 905 + napi_complete_done(napi, work_done); 906 906 b44_enable_ints(bp); 907 907 } 908 908
+1 -1
drivers/net/ethernet/broadcom/bcm63xx_enet.c
··· 511 511 512 512 /* no more packet in rx/tx queue, remove device from poll 513 513 * queue */ 514 - napi_complete(napi); 514 + napi_complete_done(napi, rx_work_done); 515 515 516 516 /* restore rx/tx interrupt */ 517 517 enet_dmac_writel(priv, priv->dma_chan_int_mask,
+1 -1
drivers/net/ethernet/broadcom/bgmac.c
··· 1148 1148 return weight; 1149 1149 1150 1150 if (handled < weight) { 1151 - napi_complete(napi); 1151 + napi_complete_done(napi, handled); 1152 1152 bgmac_chip_intrs_on(bgmac); 1153 1153 } 1154 1154
+2 -2
drivers/net/ethernet/broadcom/bnx2.c
··· 3515 3515 rmb(); 3516 3516 if (likely(!bnx2_has_fast_work(bnapi))) { 3517 3517 3518 - napi_complete(napi); 3518 + napi_complete_done(napi, work_done); 3519 3519 BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num | 3520 3520 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID | 3521 3521 bnapi->last_status_idx); ··· 3552 3552 3553 3553 rmb(); 3554 3554 if (likely(!bnx2_has_work(bnapi))) { 3555 - napi_complete(napi); 3555 + napi_complete_done(napi, work_done); 3556 3556 if (likely(bp->flags & BNX2_FLAG_USING_MSI_OR_MSIX)) { 3557 3557 BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, 3558 3558 BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
+1 -1
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
··· 3224 3224 * has been updated when NAPI was scheduled. 3225 3225 */ 3226 3226 if (IS_FCOE_FP(fp)) { 3227 - napi_complete(napi); 3227 + napi_complete_done(napi, rx_work_done); 3228 3228 } else { 3229 3229 bnx2x_update_fpsb_idx(fp); 3230 3230 /* bnx2x_has_rx_work() reads the status block,
+1 -1
drivers/net/ethernet/broadcom/bnxt/bnxt.c
··· 1759 1759 } 1760 1760 1761 1761 if (!bnxt_has_work(bp, cpr) && rx_pkts < budget) { 1762 - napi_complete(napi); 1762 + napi_complete_done(napi, rx_pkts); 1763 1763 BNXT_CP_DB_REARM(cpr->cp_doorbell, cpr->cp_raw_cons); 1764 1764 } 1765 1765 return rx_pkts;
+1 -1
drivers/net/ethernet/broadcom/sb1250-mac.c
··· 2537 2537 sbdma_tx_process(sc, &(sc->sbm_txdma), 1); 2538 2538 2539 2539 if (work_done < budget) { 2540 - napi_complete(napi); 2540 + napi_complete_done(napi, work_done); 2541 2541 2542 2542 #ifdef CONFIG_SBMAC_COALESCE 2543 2543 __raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) |
+1 -1
drivers/net/ethernet/brocade/bna/bnad.c
··· 1881 1881 return rcvd; 1882 1882 1883 1883 poll_exit: 1884 - napi_complete(napi); 1884 + napi_complete_done(napi, rcvd); 1885 1885 1886 1886 rx_ctrl->rx_complete++; 1887 1887
+1 -1
drivers/net/ethernet/cadence/macb.c
··· 1090 1090 1091 1091 work_done = bp->macbgem_ops.mog_rx(bp, budget); 1092 1092 if (work_done < budget) { 1093 - napi_complete(napi); 1093 + napi_complete_done(napi, work_done); 1094 1094 1095 1095 /* Packets received while interrupts were disabled */ 1096 1096 status = macb_readl(bp, RSR);
+1 -1
drivers/net/ethernet/calxeda/xgmac.c
··· 1247 1247 work_done = xgmac_rx(priv, budget); 1248 1248 1249 1249 if (work_done < budget) { 1250 - napi_complete(napi); 1250 + napi_complete_done(napi, work_done); 1251 1251 __raw_writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_INTR_ENA); 1252 1252 } 1253 1253 return work_done;
+1 -1
drivers/net/ethernet/cavium/liquidio/lio_main.c
··· 2446 2446 } 2447 2447 2448 2448 if ((work_done < budget) && (tx_done)) { 2449 - napi_complete(napi); 2449 + napi_complete_done(napi, work_done); 2450 2450 octeon_process_droq_poll_cmd(droq->oct_dev, droq->q_no, 2451 2451 POLL_EVENT_ENABLE_INTR, 0); 2452 2452 return 0;
+1 -1
drivers/net/ethernet/cavium/liquidio/lio_vf_main.c
··· 1631 1631 } 1632 1632 1633 1633 if ((work_done < budget) && (tx_done)) { 1634 - napi_complete(napi); 1634 + napi_complete_done(napi, work_done); 1635 1635 octeon_process_droq_poll_cmd(droq->oct_dev, droq->q_no, 1636 1636 POLL_EVENT_ENABLE_INTR, 0); 1637 1637 return 0;
+1 -1
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
··· 501 501 502 502 if (work_done < budget) { 503 503 /* We stopped because no more packets were available. */ 504 - napi_complete(napi); 504 + napi_complete_done(napi, work_done); 505 505 octeon_mgmt_enable_rx_irq(p); 506 506 } 507 507 octeon_mgmt_update_rx_stats(netdev);
+1 -1
drivers/net/ethernet/cavium/thunder/nicvf_main.c
··· 749 749 750 750 if (work_done < budget) { 751 751 /* Slow packet rate, exit polling */ 752 - napi_complete(napi); 752 + napi_complete_done(napi, work_done); 753 753 /* Re-enable interrupts */ 754 754 cq_head = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_HEAD, 755 755 cq->cq_idx);
+1 -1
drivers/net/ethernet/chelsio/cxgb/sge.c
··· 1605 1605 int work_done = process_responses(adapter, budget); 1606 1606 1607 1607 if (likely(work_done < budget)) { 1608 - napi_complete(napi); 1608 + napi_complete_done(napi, work_done); 1609 1609 writel(adapter->sge->respQ.cidx, 1610 1610 adapter->regs + A_SG_SLEEPING); 1611 1611 }
+2 -2
drivers/net/ethernet/chelsio/cxgb3/sge.c
··· 1843 1843 __skb_queue_head_init(&queue); 1844 1844 skb_queue_splice_init(&q->rx_queue, &queue); 1845 1845 if (skb_queue_empty(&queue)) { 1846 - napi_complete(napi); 1846 + napi_complete_done(napi, work_done); 1847 1847 spin_unlock_irq(&q->lock); 1848 1848 return work_done; 1849 1849 } ··· 2414 2414 int work_done = process_responses(adap, qs, budget); 2415 2415 2416 2416 if (likely(work_done < budget)) { 2417 - napi_complete(napi); 2417 + napi_complete_done(napi, work_done); 2418 2418 2419 2419 /* 2420 2420 * Because we don't atomically flush the following
+1 -1
drivers/net/ethernet/chelsio/cxgb4vf/sge.c
··· 1889 1889 u32 val; 1890 1890 1891 1891 if (likely(work_done < budget)) { 1892 - napi_complete(napi); 1892 + napi_complete_done(napi, work_done); 1893 1893 intr_params = rspq->next_intr_params; 1894 1894 rspq->next_intr_params = rspq->intr_params; 1895 1895 } else
+2 -2
drivers/net/ethernet/cisco/enic/enic_main.c
··· 1343 1343 * exit polling 1344 1344 */ 1345 1345 1346 - napi_complete(napi); 1346 + napi_complete_done(napi, rq_work_done); 1347 1347 if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) 1348 1348 enic_set_int_moderation(enic, &enic->rq[0]); 1349 1349 vnic_intr_unmask(&enic->intr[intr]); ··· 1500 1500 * exit polling 1501 1501 */ 1502 1502 1503 - napi_complete(napi); 1503 + napi_complete_done(napi, work_done); 1504 1504 if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) 1505 1505 enic_set_int_moderation(enic, &enic->rq[rq]); 1506 1506 vnic_intr_unmask(&enic->intr[intr]);
+3 -3
drivers/net/ethernet/dec/tulip/interrupt.c
··· 319 319 320 320 /* Remove us from polling list and enable RX intr. */ 321 321 322 - napi_complete(napi); 323 - iowrite32(tulip_tbl[tp->chip_id].valid_intrs, tp->base_addr+CSR7); 322 + napi_complete_done(napi, work_done); 323 + iowrite32(tulip_tbl[tp->chip_id].valid_intrs, tp->base_addr+CSR7); 324 324 325 325 /* The last op happens after poll completion. Which means the following: 326 326 * 1. it can race with disabling irqs in irq handler ··· 355 355 * before we did napi_complete(). See? We would lose it. */ 356 356 357 357 /* remove ourselves from the polling list */ 358 - napi_complete(napi); 358 + napi_complete_done(napi, work_done); 359 359 360 360 return work_done; 361 361 }
+1 -1
drivers/net/ethernet/dnet.c
··· 415 415 /* We processed all packets available. Tell NAPI it can 416 416 * stop polling then re-enable rx interrupts. 417 417 */ 418 - napi_complete(napi); 418 + napi_complete_done(napi, npackets); 419 419 int_enable = dnet_readl(bp, INTR_ENB); 420 420 int_enable |= DNET_INTR_SRC_RX_CMDFIFOAF; 421 421 dnet_writel(bp, int_enable, INTR_ENB);
+1 -1
drivers/net/ethernet/emulex/benet/be_main.c
··· 3324 3324 be_process_mcc(adapter); 3325 3325 3326 3326 if (max_work < budget) { 3327 - napi_complete(napi); 3327 + napi_complete_done(napi, max_work); 3328 3328 3329 3329 /* Skyhawk EQ_DB has a provision to set the rearm to interrupt 3330 3330 * delay via a delay multiplier encoding value
+1 -1
drivers/net/ethernet/ethoc.c
··· 614 614 tx_work_done = ethoc_tx(priv->netdev, budget); 615 615 616 616 if (rx_work_done < budget && tx_work_done < budget) { 617 - napi_complete(napi); 617 + napi_complete_done(napi, rx_work_done); 618 618 ethoc_enable_irq(priv, INT_MASK_TX | INT_MASK_RX); 619 619 } 620 620
+1 -1
drivers/net/ethernet/ezchip/nps_enet.c
··· 192 192 if (work_done < budget) { 193 193 u32 buf_int_enable_value = 0; 194 194 195 - napi_complete(napi); 195 + napi_complete_done(napi, work_done); 196 196 197 197 /* set tx_done and rx_rdy bits */ 198 198 buf_int_enable_value |= NPS_ENET_ENABLE << RX_RDY_SHIFT;
+1 -1
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
··· 2001 2001 int cleaned = qman_p_poll_dqrr(np->p, budget); 2002 2002 2003 2003 if (cleaned < budget) { 2004 - napi_complete(napi); 2004 + napi_complete_done(napi, cleaned); 2005 2005 qman_p_irqsource_add(np->p, QM_PIRQ_DQRI); 2006 2006 2007 2007 } else if (np->down) {
+1 -1
drivers/net/ethernet/freescale/fec_main.c
··· 1615 1615 fec_enet_tx(ndev); 1616 1616 1617 1617 if (pkts < budget) { 1618 - napi_complete(napi); 1618 + napi_complete_done(napi, pkts); 1619 1619 writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK); 1620 1620 } 1621 1621 return pkts;
+1 -1
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c
··· 301 301 302 302 if (received < budget && tx_left) { 303 303 /* done */ 304 - napi_complete(napi); 304 + napi_complete_done(napi, received); 305 305 (*fep->ops->napi_enable)(dev); 306 306 307 307 return received;
+2 -2
drivers/net/ethernet/freescale/gianfar.c
··· 3183 3183 3184 3184 if (work_done < budget) { 3185 3185 u32 imask; 3186 - napi_complete(napi); 3186 + napi_complete_done(napi, work_done); 3187 3187 /* Clear the halt bit in RSTAT */ 3188 3188 gfar_write(&regs->rstat, gfargrp->rstat); 3189 3189 ··· 3272 3272 3273 3273 if (!num_act_queues) { 3274 3274 u32 imask; 3275 - napi_complete(napi); 3275 + napi_complete_done(napi, work_done); 3276 3276 3277 3277 /* Clear the halt bit in RSTAT */ 3278 3278 gfar_write(&regs->rstat, gfargrp->rstat);
+1 -1
drivers/net/ethernet/freescale/ucc_geth.c
··· 3303 3303 howmany += ucc_geth_rx(ugeth, i, budget - howmany); 3304 3304 3305 3305 if (howmany < budget) { 3306 - napi_complete(napi); 3306 + napi_complete_done(napi, howmany); 3307 3307 setbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS | UCCE_TX_EVENTS); 3308 3308 } 3309 3309
+1 -1
drivers/net/ethernet/hisilicon/hip04_eth.c
··· 555 555 priv->reg_inten |= RCV_INT; 556 556 writel_relaxed(priv->reg_inten, priv->base + PPE_INTEN); 557 557 } 558 - napi_complete(napi); 558 + napi_complete_done(napi, rx); 559 559 done: 560 560 /* clean up tx descriptors and start a new timer if necessary */ 561 561 tx_remaining = hip04_tx_reclaim(ndev, false);
+1 -1
drivers/net/ethernet/hisilicon/hisi_femac.c
··· 330 330 } while (ints & DEF_INT_MASK); 331 331 332 332 if (work_done < budget) { 333 - napi_complete(napi); 333 + napi_complete_done(napi, work_done); 334 334 hisi_femac_irq_enable(priv, DEF_INT_MASK & 335 335 (~IRQ_INT_TX_PER_PACKET)); 336 336 }
+1 -1
drivers/net/ethernet/hisilicon/hix5hd2_gmac.c
··· 662 662 } while (ints & DEF_INT_MASK); 663 663 664 664 if (work_done < budget) { 665 - napi_complete(napi); 665 + napi_complete_done(napi, work_done); 666 666 hix5hd2_irq_enable(priv); 667 667 } 668 668
+1 -1
drivers/net/ethernet/ibm/ibmveth.c
··· 1326 1326 ibmveth_replenish_task(adapter); 1327 1327 1328 1328 if (frames_processed < budget) { 1329 - napi_complete(napi); 1329 + napi_complete_done(napi, frames_processed); 1330 1330 1331 1331 /* We think we are done - reenable interrupts, 1332 1332 * then check once more to make sure we are done.
+1 -1
drivers/net/ethernet/ibm/ibmvnic.c
··· 987 987 988 988 if (frames_processed < budget) { 989 989 enable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]); 990 - napi_complete(napi); 990 + napi_complete_done(napi, frames_processed); 991 991 if (pending_scrq(adapter, adapter->rx_scrq[scrq_num]) && 992 992 napi_reschedule(napi)) { 993 993 disable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]);
+1 -1
drivers/net/ethernet/intel/e100.c
··· 2253 2253 2254 2254 /* If budget not fully consumed, exit the polling mode */ 2255 2255 if (work_done < budget) { 2256 - napi_complete(napi); 2256 + napi_complete_done(napi, work_done); 2257 2257 e100_enable_irq(nic); 2258 2258 } 2259 2259
+1 -1
drivers/net/ethernet/intel/ixgb/ixgb_main.c
··· 1817 1817 1818 1818 /* If budget not fully consumed, exit the polling mode */ 1819 1819 if (work_done < budget) { 1820 - napi_complete(napi); 1820 + napi_complete_done(napi, work_done); 1821 1821 if (!test_bit(__IXGB_DOWN, &adapter->flags)) 1822 1822 ixgb_irq_enable(adapter); 1823 1823 }
+1 -1
drivers/net/ethernet/korina.c
··· 464 464 465 465 work_done = korina_rx(dev, budget); 466 466 if (work_done < budget) { 467 - napi_complete(napi); 467 + napi_complete_done(napi, work_done); 468 468 469 469 writel(readl(&lp->rx_dma_regs->dmasm) & 470 470 ~(DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR),
+9 -12
drivers/net/ethernet/lantiq_etop.c
··· 156 156 { 157 157 struct ltq_etop_chan *ch = container_of(napi, 158 158 struct ltq_etop_chan, napi); 159 - int rx = 0; 160 - int complete = 0; 159 + int work_done = 0; 161 160 162 - while ((rx < budget) && !complete) { 161 + while (work_done < budget) { 163 162 struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc]; 164 163 165 - if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) == LTQ_DMA_C) { 166 - ltq_etop_hw_receive(ch); 167 - rx++; 168 - } else { 169 - complete = 1; 170 - } 164 + if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) != LTQ_DMA_C) 165 + break; 166 + ltq_etop_hw_receive(ch); 167 + work_done++; 171 168 } 172 - if (complete || !rx) { 173 - napi_complete(&ch->napi); 169 + if (work_done < budget) { 170 + napi_complete_done(&ch->napi, work_done); 174 171 ltq_dma_ack_irq(&ch->dma); 175 172 } 176 - return rx; 173 + return work_done; 177 174 } 178 175 179 176 static int
+1 -1
drivers/net/ethernet/marvell/mv643xx_eth.c
··· 2319 2319 if (work_done < budget) { 2320 2320 if (mp->oom) 2321 2321 mod_timer(&mp->rx_oom, jiffies + (HZ / 10)); 2322 - napi_complete(napi); 2322 + napi_complete_done(napi, work_done); 2323 2323 wrlp(mp, INT_MASK, mp->int_mask); 2324 2324 } 2325 2325
+2 -4
drivers/net/ethernet/marvell/mvneta.c
··· 2767 2767 rx_done = mvneta_rx_swbm(pp, budget, &pp->rxqs[rx_queue]); 2768 2768 } 2769 2769 2770 - budget -= rx_done; 2771 - 2772 - if (budget > 0) { 2770 + if (rx_done < budget) { 2773 2771 cause_rx_tx = 0; 2774 - napi_complete(napi); 2772 + napi_complete_done(napi, rx_done); 2775 2773 2776 2774 if (pp->neta_armada3700) { 2777 2775 unsigned long flags;
+1 -1
drivers/net/ethernet/marvell/mvpp2.c
··· 5405 5405 5406 5406 if (budget > 0) { 5407 5407 cause_rx = 0; 5408 - napi_complete(napi); 5408 + napi_complete_done(napi, rx_done); 5409 5409 5410 5410 mvpp2_interrupts_enable(port); 5411 5411 }
+1 -1
drivers/net/ethernet/marvell/pxa168_eth.c
··· 1261 1261 } 1262 1262 work_done = rxq_process(dev, budget); 1263 1263 if (work_done < budget) { 1264 - napi_complete(napi); 1264 + napi_complete_done(napi, work_done); 1265 1265 wrl(pep, INT_MASK, ALL_INTS); 1266 1266 } 1267 1267
+1 -1
drivers/net/ethernet/moxa/moxart_ether.c
··· 269 269 } 270 270 271 271 if (rx < budget) { 272 - napi_complete(napi); 272 + napi_complete_done(napi, rx); 273 273 } 274 274 275 275 priv->reg_imr |= RPKT_FINISH_M;
+1 -1
drivers/net/ethernet/myricom/myri10ge/myri10ge.c
··· 1678 1678 1679 1679 myri10ge_ss_unlock_napi(ss); 1680 1680 if (work_done < budget) { 1681 - napi_complete(napi); 1681 + napi_complete_done(napi, work_done); 1682 1682 put_be32(htonl(3), ss->irq_claim); 1683 1683 } 1684 1684 return work_done;
+1 -1
drivers/net/ethernet/natsemi/natsemi.c
··· 2265 2265 np->intr_status = readl(ioaddr + IntrStatus); 2266 2266 } while (np->intr_status); 2267 2267 2268 - napi_complete(napi); 2268 + napi_complete_done(napi, work_done); 2269 2269 2270 2270 /* Reenable interrupts providing nothing is trying to shut 2271 2271 * the chip down. */
+2 -2
drivers/net/ethernet/neterion/s2io.c
··· 2783 2783 s2io_chk_rx_buffers(nic, ring); 2784 2784 2785 2785 if (pkts_processed < budget_org) { 2786 - napi_complete(napi); 2786 + napi_complete_done(napi, pkts_processed); 2787 2787 /*Re Enable MSI-Rx Vector*/ 2788 2788 addr = (u8 __iomem *)&bar0->xmsi_mask_reg; 2789 2789 addr += 7 - ring->ring_no; ··· 2817 2817 break; 2818 2818 } 2819 2819 if (pkts_processed < budget_org) { 2820 - napi_complete(napi); 2820 + napi_complete_done(napi, pkts_processed); 2821 2821 /* Re enable the Rx interrupts for the ring */ 2822 2822 writeq(0, &bar0->rx_traffic_mask); 2823 2823 readl(&bar0->rx_traffic_mask);
+3 -3
drivers/net/ethernet/neterion/vxge/vxge-main.c
··· 1823 1823 vxge_hw_vpath_poll_rx(ring->handle); 1824 1824 pkts_processed = ring->pkts_processed; 1825 1825 1826 - if (ring->pkts_processed < budget_org) { 1827 - napi_complete(napi); 1826 + if (pkts_processed < budget_org) { 1827 + napi_complete_done(napi, pkts_processed); 1828 1828 1829 1829 /* Re enable the Rx interrupts for the vpath */ 1830 1830 vxge_hw_channel_msix_unmask( ··· 1863 1863 VXGE_COMPLETE_ALL_TX(vdev); 1864 1864 1865 1865 if (pkts_processed < budget_org) { 1866 - napi_complete(napi); 1866 + napi_complete_done(napi, pkts_processed); 1867 1867 /* Re enable the Rx interrupts for the ring */ 1868 1868 vxge_hw_device_unmask_all(hldev); 1869 1869 vxge_hw_device_flush_io(hldev);
+1 -1
drivers/net/ethernet/nvidia/forcedeth.c
··· 3749 3749 if (rx_work < budget) { 3750 3750 /* re-enable interrupts 3751 3751 (msix not enabled in napi) */ 3752 - napi_complete(napi); 3752 + napi_complete_done(napi, rx_work); 3753 3753 3754 3754 writel(np->irqmask, base + NvRegIrqMask); 3755 3755 }
+1 -1
drivers/net/ethernet/nxp/lpc_eth.c
··· 999 999 rx_done = __lpc_handle_recv(ndev, budget); 1000 1000 1001 1001 if (rx_done < budget) { 1002 - napi_complete(napi); 1002 + napi_complete_done(napi, rx_done); 1003 1003 lpc_eth_enable_int(pldat->net_base); 1004 1004 } 1005 1005
+1 -1
drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
··· 2385 2385 poll_end_flag = true; 2386 2386 2387 2387 if (poll_end_flag) { 2388 - napi_complete(napi); 2388 + napi_complete_done(napi, work_done); 2389 2389 pch_gbe_irq_enable(adapter); 2390 2390 } 2391 2391
+1 -1
drivers/net/ethernet/pasemi/pasemi_mac.c
··· 1575 1575 pkts = pasemi_mac_clean_rx(rx_ring(mac), budget); 1576 1576 if (pkts < budget) { 1577 1577 /* all done, no more packets present */ 1578 - napi_complete(napi); 1578 + napi_complete_done(napi, pkts); 1579 1579 1580 1580 pasemi_mac_restart_rx_intr(mac); 1581 1581 pasemi_mac_restart_tx_intr(mac);
+1 -1
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
··· 2396 2396 work_done = budget; 2397 2397 2398 2398 if (work_done < budget) { 2399 - napi_complete(&sds_ring->napi); 2399 + napi_complete_done(&sds_ring->napi, work_done); 2400 2400 if (test_bit(__NX_DEV_UP, &adapter->state)) 2401 2401 netxen_nic_enable_int(sds_ring); 2402 2402 }
+1 -1
drivers/net/ethernet/qlogic/qede/qede_fp.c
··· 1372 1372 qede_rx_int(fp, budget) : 0; 1373 1373 if (rx_work_done < budget) { 1374 1374 if (!qede_poll_is_more_work(fp)) { 1375 - napi_complete(napi); 1375 + napi_complete_done(napi, rx_work_done); 1376 1376 1377 1377 /* Update and reenable interrupts */ 1378 1378 qed_sb_ack(fp->sb_info, IGU_INT_ENABLE, 1);
+5 -5
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
··· 975 975 work_done = budget; 976 976 977 977 if (work_done < budget) { 978 - napi_complete(&sds_ring->napi); 978 + napi_complete_done(&sds_ring->napi, work_done); 979 979 if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) { 980 980 qlcnic_enable_sds_intr(adapter, sds_ring); 981 981 qlcnic_enable_tx_intr(adapter, tx_ring); ··· 1019 1019 work_done = qlcnic_process_rcv_ring(sds_ring, budget); 1020 1020 1021 1021 if (work_done < budget) { 1022 - napi_complete(&sds_ring->napi); 1022 + napi_complete_done(&sds_ring->napi, work_done); 1023 1023 if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) 1024 1024 qlcnic_enable_sds_intr(adapter, sds_ring); 1025 1025 } ··· 1966 1966 work_done = budget; 1967 1967 1968 1968 if (work_done < budget) { 1969 - napi_complete(&sds_ring->napi); 1969 + napi_complete_done(&sds_ring->napi, work_done); 1970 1970 qlcnic_enable_sds_intr(adapter, sds_ring); 1971 1971 } 1972 1972 ··· 1994 1994 work_done = budget; 1995 1995 1996 1996 if (work_done < budget) { 1997 - napi_complete(&sds_ring->napi); 1997 + napi_complete_done(&sds_ring->napi, work_done); 1998 1998 qlcnic_enable_sds_intr(adapter, sds_ring); 1999 1999 } 2000 2000 ··· 2032 2032 adapter = sds_ring->adapter; 2033 2033 work_done = qlcnic_83xx_process_rcv_ring(sds_ring, budget); 2034 2034 if (work_done < budget) { 2035 - napi_complete(&sds_ring->napi); 2035 + napi_complete_done(&sds_ring->napi, work_done); 2036 2036 if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) 2037 2037 qlcnic_enable_sds_intr(adapter, sds_ring); 2038 2038 }
+1 -1
drivers/net/ethernet/qlogic/qlge/qlge_main.c
··· 2334 2334 } 2335 2335 2336 2336 if (work_done < budget) { 2337 - napi_complete(napi); 2337 + napi_complete_done(napi, work_done); 2338 2338 ql_enable_completion_interrupt(qdev, rx_ring->irq); 2339 2339 } 2340 2340 return work_done;
+1 -1
drivers/net/ethernet/qualcomm/emac/emac.c
··· 129 129 emac_mac_rx_process(adpt, rx_q, &work_done, budget); 130 130 131 131 if (work_done < budget) { 132 - napi_complete(napi); 132 + napi_complete_done(napi, work_done); 133 133 134 134 irq->mask |= rx_q->intr; 135 135 writel(irq->mask, adpt->base + EMAC_INT_MASK);
+1 -1
drivers/net/ethernet/realtek/r8169.c
··· 7583 7583 } 7584 7584 7585 7585 if (work_done < budget) { 7586 - napi_complete(napi); 7586 + napi_complete_done(napi, work_done); 7587 7587 7588 7588 rtl_irq_enable(tp, enable_mask); 7589 7589 mmiowb();
+1 -1
drivers/net/ethernet/rocker/rocker_main.c
··· 2517 2517 } 2518 2518 2519 2519 if (credits < budget) 2520 - napi_complete(napi); 2520 + napi_complete_done(napi, credits); 2521 2521 2522 2522 rocker_dma_ring_credits_set(rocker, &rocker_port->rx_ring, credits); 2523 2523
+1 -1
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c
··· 1563 1563 1564 1564 work_done = sxgbe_rx(priv, budget); 1565 1565 if (work_done < budget) { 1566 - napi_complete(napi); 1566 + napi_complete_done(napi, work_done); 1567 1567 priv->hw->dma->enable_dma_irq(priv->ioaddr, qnum); 1568 1568 } 1569 1569
+1 -1
drivers/net/ethernet/sfc/efx.c
··· 331 331 * since efx_nic_eventq_read_ack() will have no effect if 332 332 * interrupts have already been disabled. 333 333 */ 334 - napi_complete(napi); 334 + napi_complete_done(napi, spent); 335 335 efx_nic_eventq_read_ack(channel); 336 336 } 337 337
+1 -1
drivers/net/ethernet/sfc/falcon/efx.c
··· 327 327 * since ef4_nic_eventq_read_ack() will have no effect if 328 328 * interrupts have already been disabled. 329 329 */ 330 - napi_complete(napi); 330 + napi_complete_done(napi, spent); 331 331 ef4_nic_eventq_read_ack(channel); 332 332 } 333 333
+1 -1
drivers/net/ethernet/smsc/smsc9420.c
··· 861 861 smsc9420_pci_flush_write(pd); 862 862 863 863 if (work_done < budget) { 864 - napi_complete(&pd->napi); 864 + napi_complete_done(&pd->napi, work_done); 865 865 866 866 /* re-enable RX DMA interrupts */ 867 867 dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA);
+1 -1
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
··· 2684 2684 2685 2685 work_done = stmmac_rx(priv, budget); 2686 2686 if (work_done < budget) { 2687 - napi_complete(napi); 2687 + napi_complete_done(napi, work_done); 2688 2688 stmmac_enable_dma_irq(priv); 2689 2689 } 2690 2690 return work_done;
+1 -1
drivers/net/ethernet/sun/niu.c
··· 3786 3786 work_done = niu_poll_core(np, lp, budget); 3787 3787 3788 3788 if (work_done < budget) { 3789 - napi_complete(napi); 3789 + napi_complete_done(napi, work_done); 3790 3790 niu_ldg_rearm(np, lp, 1); 3791 3791 } 3792 3792 return work_done;
+1 -1
drivers/net/ethernet/sun/sungem.c
··· 922 922 gp->status = readl(gp->regs + GREG_STAT); 923 923 } while (gp->status & GREG_STAT_NAPI); 924 924 925 - napi_complete(napi); 925 + napi_complete_done(napi, work_done); 926 926 gem_enable_ints(gp); 927 927 928 928 return work_done;
+1 -1
drivers/net/ethernet/sun/sunvnet_common.c
··· 860 860 int processed = vnet_event_napi(port, budget); 861 861 862 862 if (processed < budget) { 863 - napi_complete(napi); 863 + napi_complete_done(napi, processed); 864 864 port->rx_event &= ~LDC_EVENT_DATA_READY; 865 865 vio_set_intr(vio->vdev->rx_ino, HV_INTR_ENABLED); 866 866 }
+1 -1
drivers/net/ethernet/tehuti/tehuti.c
··· 303 303 * device lock and allow waiting tasks (eg rmmod) to advance) */ 304 304 priv->napi_stop = 0; 305 305 306 - napi_complete(napi); 306 + napi_complete_done(napi, work_done); 307 307 bdx_enable_interrupts(priv); 308 308 } 309 309 return work_done;
+1 -1
drivers/net/ethernet/ti/cpsw.c
··· 942 942 } 943 943 944 944 if (num_rx < budget) { 945 - napi_complete(napi_rx); 945 + napi_complete_done(napi_rx, num_rx); 946 946 writel(0xff, &cpsw->wr_regs->rx_en); 947 947 if (cpsw->quirk_irq && cpsw->rx_irq_disabled) { 948 948 cpsw->rx_irq_disabled = false;
+1 -1
drivers/net/ethernet/ti/davinci_emac.c
··· 1295 1295 &emac_rxhost_errcodes[cause][0], ch); 1296 1296 } 1297 1297 } else if (num_rx_pkts < budget) { 1298 - napi_complete(napi); 1298 + napi_complete_done(napi, num_rx_pkts); 1299 1299 emac_int_enable(priv); 1300 1300 } 1301 1301
+1 -1
drivers/net/ethernet/ti/netcp_core.c
··· 969 969 970 970 netcp_rxpool_refill(netcp); 971 971 if (packets < budget) { 972 - napi_complete(&netcp->rx_napi); 972 + napi_complete_done(&netcp->rx_napi, packets); 973 973 knav_queue_enable_notify(netcp->rx_queue); 974 974 } 975 975
+1 -1
drivers/net/ethernet/tile/tilegx.c
··· 681 681 } 682 682 683 683 /* There are no packets left. */ 684 - napi_complete(&info_mpipe->napi); 684 + napi_complete_done(&info_mpipe->napi, work); 685 685 686 686 md = &mpipe_data[instance]; 687 687 /* Re-enable hypervisor interrupts. */
+1 -1
drivers/net/ethernet/tile/tilepro.c
··· 842 842 } 843 843 } 844 844 845 - napi_complete(&info->napi); 845 + napi_complete_done(&info->napi, work); 846 846 847 847 if (!priv->active) 848 848 goto done;
+1 -1
drivers/net/ethernet/toshiba/ps3_gelic_net.c
··· 1109 1109 } 1110 1110 1111 1111 if (packets_done < budget) { 1112 - napi_complete(napi); 1112 + napi_complete_done(napi, packets_done); 1113 1113 gelic_card_rx_irq_on(card); 1114 1114 } 1115 1115 return packets_done;
+1 -1
drivers/net/ethernet/toshiba/spider_net.c
··· 1270 1270 /* if all packets are in the stack, enable interrupts and return 0 */ 1271 1271 /* if not, return 1 */ 1272 1272 if (packets_done < budget) { 1273 - napi_complete(napi); 1273 + napi_complete_done(napi, packets_done); 1274 1274 spider_net_rx_irq_on(card); 1275 1275 card->ignore_rx_ramfull = 0; 1276 1276 }
+1 -1
drivers/net/ethernet/toshiba/tc35815.c
··· 1638 1638 spin_unlock(&lp->rx_lock); 1639 1639 1640 1640 if (received < budget) { 1641 - napi_complete(napi); 1641 + napi_complete_done(napi, received); 1642 1642 /* enable interrupts */ 1643 1643 tc_writel(tc_readl(&tr->DMA_Ctl) & ~DMA_IntMask, &tr->DMA_Ctl); 1644 1644 }
+1 -1
drivers/net/ethernet/tundra/tsi108_eth.c
··· 887 887 888 888 if (num_received < budget) { 889 889 data->rxpending = 0; 890 - napi_complete(napi); 890 + napi_complete_done(napi, num_received); 891 891 892 892 TSI_WRITE(TSI108_EC_INTMASK, 893 893 TSI_READ(TSI108_EC_INTMASK)
+1 -1
drivers/net/ethernet/via/via-rhine.c
··· 861 861 } 862 862 863 863 if (work_done < budget) { 864 - napi_complete(napi); 864 + napi_complete_done(napi, work_done); 865 865 iowrite16(enable_mask, ioaddr + IntrEnable); 866 866 mmiowb(); 867 867 }
+1 -1
drivers/net/ethernet/via/via-velocity.c
··· 2160 2160 velocity_tx_srv(vptr); 2161 2161 /* If budget not fully consumed, exit the polling mode */ 2162 2162 if (rx_done < budget) { 2163 - napi_complete(napi); 2163 + napi_complete_done(napi, rx_done); 2164 2164 mac_enable_int(vptr->mac_regs); 2165 2165 } 2166 2166 spin_unlock_irqrestore(&vptr->lock, flags);
+1 -1
drivers/net/ethernet/wiznet/w5100.c
··· 915 915 } 916 916 917 917 if (rx_count < budget) { 918 - napi_complete(napi); 918 + napi_complete_done(napi, rx_count); 919 919 w5100_enable_intr(priv); 920 920 } 921 921
+1 -1
drivers/net/ethernet/wiznet/w5300.c
··· 417 417 } 418 418 419 419 if (rx_count < budget) { 420 - napi_complete(napi); 420 + napi_complete_done(napi, rx_count); 421 421 w5300_write(priv, W5300_IMR, IR_S0); 422 422 mmiowb(); 423 423 }
+1 -1
drivers/net/fjes/fjes_main.c
··· 1155 1155 } 1156 1156 1157 1157 if (work_done < budget) { 1158 - napi_complete(napi); 1158 + napi_complete_done(napi, work_done); 1159 1159 1160 1160 if (adapter->unset_rx_last) { 1161 1161 adapter->rx_last_jiffies = jiffies;
+2 -2
drivers/net/vmxnet3/vmxnet3_drv.c
··· 1851 1851 rxd_done = vmxnet3_do_poll(rx_queue->adapter, budget); 1852 1852 1853 1853 if (rxd_done < budget) { 1854 - napi_complete(napi); 1854 + napi_complete_done(napi, rxd_done); 1855 1855 vmxnet3_enable_all_intrs(rx_queue->adapter); 1856 1856 } 1857 1857 return rxd_done; ··· 1882 1882 rxd_done = vmxnet3_rq_rx_complete(rq, adapter, budget); 1883 1883 1884 1884 if (rxd_done < budget) { 1885 - napi_complete(napi); 1885 + napi_complete_done(napi, rxd_done); 1886 1886 vmxnet3_enable_intr(adapter, rq->comp_ring.intr_idx); 1887 1887 } 1888 1888 return rxd_done;
+1 -1
drivers/net/wan/fsl_ucc_hdlc.c
··· 573 573 howmany += hdlc_rx_done(priv, budget - howmany); 574 574 575 575 if (howmany < budget) { 576 - napi_complete(napi); 576 + napi_complete_done(napi, howmany); 577 577 qe_setbits32(priv->uccf->p_uccm, 578 578 (UCCE_HDLC_RX_EVENTS | UCCE_HDLC_TX_EVENTS) << 16); 579 579 }
+1 -1
drivers/net/wan/hd64572.c
··· 341 341 received = sca_rx_done(port, budget); 342 342 343 343 if (received < budget) { 344 - napi_complete(napi); 344 + napi_complete_done(napi, received); 345 345 enable_intr(port); 346 346 } 347 347
+1 -1
drivers/net/wireless/ath/ath10k/pci.c
··· 2799 2799 done = ath10k_htt_txrx_compl_task(ar, budget); 2800 2800 2801 2801 if (done < budget) { 2802 - napi_complete(ctx); 2802 + napi_complete_done(ctx, done); 2803 2803 /* In case of MSI, it is possible that interrupts are received 2804 2804 * while NAPI poll is inprogress. So pending interrupts that are 2805 2805 * received after processing all copy engine pipes by NAPI poll
+1 -1
drivers/net/wireless/ath/wil6210/netdev.c
··· 68 68 done = budget - quota; 69 69 70 70 if (done < budget) { 71 - napi_complete(napi); 71 + napi_complete_done(napi, done); 72 72 wil6210_unmask_irq_rx(wil); 73 73 wil_dbg_txrx(wil, "NAPI RX complete\n"); 74 74 }
+1 -1
drivers/net/xen-netback/interface.c
··· 104 104 work_done = xenvif_tx_action(queue, budget); 105 105 106 106 if (work_done < budget) { 107 - napi_complete(napi); 107 + napi_complete_done(napi, work_done); 108 108 xenvif_napi_schedule_or_enable_events(queue); 109 109 } 110 110
+1 -1
drivers/net/xen-netfront.c
··· 1051 1051 if (work_done < budget) { 1052 1052 int more_to_do = 0; 1053 1053 1054 - napi_complete(napi); 1054 + napi_complete_done(napi, work_done); 1055 1055 1056 1056 RING_FINAL_CHECK_FOR_RESPONSES(&queue->rx, more_to_do); 1057 1057 if (more_to_do)
+1 -1
drivers/staging/octeon/ethernet-rx.c
··· 429 429 430 430 if (rx_count < budget) { 431 431 /* No more work */ 432 - napi_complete(napi); 432 + napi_complete_done(napi, rx_count); 433 433 enable_irq(rx_group->irq); 434 434 } 435 435 return rx_count;
+1 -1
drivers/staging/unisys/visornic/visornic_main.c
··· 1657 1657 1658 1658 /* If there aren't any more packets to receive stop the poll */ 1659 1659 if (rx_count < budget) 1660 - napi_complete(napi); 1660 + napi_complete_done(napi, rx_count); 1661 1661 1662 1662 return rx_count; 1663 1663 }