mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 08:31:13 +00:00
drivers: net: generalize napi_complete_done()
napi_complete_done() allows to opt-in for gro_flush_timeout,
added back in linux-3.19, commit 3b47d30396
("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>
This commit is contained in:
parent
63a6fff353
commit
6ad20165d3
109 changed files with 132 additions and 137 deletions
|
@ -813,7 +813,7 @@ static int at91_poll(struct napi_struct *napi, int quota)
|
||||||
u32 reg_ier = AT91_IRQ_ERR_FRAME;
|
u32 reg_ier = AT91_IRQ_ERR_FRAME;
|
||||||
reg_ier |= get_irq_mb_rx(priv) & ~AT91_MB_MASK(priv->rx_next);
|
reg_ier |= get_irq_mb_rx(priv) & ~AT91_MB_MASK(priv->rx_next);
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
at91_write(priv, AT91_IER, reg_ier);
|
at91_write(priv, AT91_IER, reg_ier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1070,7 +1070,7 @@ static int c_can_poll(struct napi_struct *napi, int quota)
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (work_done < quota) {
|
if (work_done < quota) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
/* enable all IRQs if we are not in bus off state */
|
/* enable all IRQs if we are not in bus off state */
|
||||||
if (priv->can.state != CAN_STATE_BUS_OFF)
|
if (priv->can.state != CAN_STATE_BUS_OFF)
|
||||||
c_can_irq_control(priv, true);
|
c_can_irq_control(priv, true);
|
||||||
|
|
|
@ -703,7 +703,7 @@ static int flexcan_poll(struct napi_struct *napi, int quota)
|
||||||
work_done += flexcan_poll_bus_err(dev, reg_esr);
|
work_done += flexcan_poll_bus_err(dev, reg_esr);
|
||||||
|
|
||||||
if (work_done < quota) {
|
if (work_done < quota) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
/* enable IRQs */
|
/* enable IRQs */
|
||||||
flexcan_write(FLEXCAN_IFLAG_DEFAULT, ®s->imask1);
|
flexcan_write(FLEXCAN_IFLAG_DEFAULT, ®s->imask1);
|
||||||
flexcan_write(priv->reg_ctrl_default, ®s->ctrl);
|
flexcan_write(priv->reg_ctrl_default, ®s->ctrl);
|
||||||
|
|
|
@ -578,7 +578,7 @@ static int ifi_canfd_poll(struct napi_struct *napi, int quota)
|
||||||
work_done += ifi_canfd_do_rx_poll(ndev, quota - work_done);
|
work_done += ifi_canfd_do_rx_poll(ndev, quota - work_done);
|
||||||
|
|
||||||
if (work_done < quota) {
|
if (work_done < quota) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
ifi_canfd_irq_enable(ndev, 1);
|
ifi_canfd_irq_enable(ndev, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1475,7 +1475,7 @@ static int ican3_napi(struct napi_struct *napi, int budget)
|
||||||
/* We have processed all packets that the adapter had, but it
|
/* We have processed all packets that the adapter had, but it
|
||||||
* was less than our budget, stop polling */
|
* was less than our budget, stop polling */
|
||||||
if (received < budget)
|
if (received < budget)
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, received);
|
||||||
|
|
||||||
spin_lock_irqsave(&mod->lock, flags);
|
spin_lock_irqsave(&mod->lock, flags);
|
||||||
|
|
||||||
|
|
|
@ -730,7 +730,7 @@ static int m_can_poll(struct napi_struct *napi, int quota)
|
||||||
work_done += m_can_do_rx_poll(dev, (quota - work_done));
|
work_done += m_can_do_rx_poll(dev, (quota - work_done));
|
||||||
|
|
||||||
if (work_done < quota) {
|
if (work_done < quota) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
m_can_enable_all_interrupts(priv);
|
m_can_enable_all_interrupts(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -695,7 +695,7 @@ static int rcar_can_rx_poll(struct napi_struct *napi, int quota)
|
||||||
}
|
}
|
||||||
/* All packets processed */
|
/* All packets processed */
|
||||||
if (num_pkts < quota) {
|
if (num_pkts < quota) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, num_pkts);
|
||||||
priv->ier |= RCAR_CAN_IER_RXFIE;
|
priv->ier |= RCAR_CAN_IER_RXFIE;
|
||||||
writeb(priv->ier, &priv->regs->ier);
|
writeb(priv->ier, &priv->regs->ier);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1512,7 +1512,7 @@ static int rcar_canfd_rx_poll(struct napi_struct *napi, int quota)
|
||||||
|
|
||||||
/* All packets processed */
|
/* All packets processed */
|
||||||
if (num_pkts < quota) {
|
if (num_pkts < quota) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, num_pkts);
|
||||||
/* Enable Rx FIFO interrupts */
|
/* Enable Rx FIFO interrupts */
|
||||||
rcar_canfd_set_bit(priv->base, RCANFD_RFCC(ridx),
|
rcar_canfd_set_bit(priv->base, RCANFD_RFCC(ridx),
|
||||||
RCANFD_RFCC_RFIE);
|
RCANFD_RFCC_RFIE);
|
||||||
|
|
|
@ -726,7 +726,7 @@ static int xcan_rx_poll(struct napi_struct *napi, int quota)
|
||||||
can_led_event(ndev, CAN_LED_EVENT_RX);
|
can_led_event(ndev, CAN_LED_EVENT_RX);
|
||||||
|
|
||||||
if (work_done < quota) {
|
if (work_done < quota) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
ier = priv->read_reg(priv, XCAN_IER_OFFSET);
|
ier = priv->read_reg(priv, XCAN_IER_OFFSET);
|
||||||
ier |= (XCAN_IXR_RXOK_MASK | XCAN_IXR_RXNEMP_MASK);
|
ier |= (XCAN_IXR_RXOK_MASK | XCAN_IXR_RXNEMP_MASK);
|
||||||
priv->write_reg(priv, XCAN_IER_OFFSET, ier);
|
priv->write_reg(priv, XCAN_IER_OFFSET, ier);
|
||||||
|
|
|
@ -1753,7 +1753,7 @@ typhoon_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
iowrite32(TYPHOON_INTR_NONE,
|
iowrite32(TYPHOON_INTR_NONE,
|
||||||
tp->ioaddr + TYPHOON_REG_INTR_MASK);
|
tp->ioaddr + TYPHOON_REG_INTR_MASK);
|
||||||
typhoon_post_pci_writes(tp->ioaddr);
|
typhoon_post_pci_writes(tp->ioaddr);
|
||||||
|
|
|
@ -1274,7 +1274,7 @@ static int bfin_mac_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i < budget) {
|
if (i < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, i);
|
||||||
if (test_and_clear_bit(BFIN_MAC_RX_IRQ_DISABLED, &lp->flags))
|
if (test_and_clear_bit(BFIN_MAC_RX_IRQ_DISABLED, &lp->flags))
|
||||||
enable_irq(IRQ_MAC_RX);
|
enable_irq(IRQ_MAC_RX);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3575,7 +3575,7 @@ static int et131x_poll(struct napi_struct *napi, int budget)
|
||||||
et131x_handle_send_pkts(adapter);
|
et131x_handle_send_pkts(adapter);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&adapter->napi);
|
napi_complete_done(&adapter->napi, work_done);
|
||||||
et131x_enable_interrupts(adapter);
|
et131x_enable_interrupts(adapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -513,7 +513,7 @@ static int tse_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (rxcomplete < budget) {
|
if (rxcomplete < budget) {
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rxcomplete);
|
||||||
|
|
||||||
netdev_dbg(priv->dev,
|
netdev_dbg(priv->dev,
|
||||||
"NAPI Complete, did %d packets with budget %d\n",
|
"NAPI Complete, did %d packets with budget %d\n",
|
||||||
|
|
|
@ -840,7 +840,7 @@ static int xgene_enet_napi(struct napi_struct *napi, const int budget)
|
||||||
processed = xgene_enet_process_ring(ring, budget);
|
processed = xgene_enet_process_ring(ring, budget);
|
||||||
|
|
||||||
if (processed != budget) {
|
if (processed != budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, processed);
|
||||||
enable_irq(ring->irq);
|
enable_irq(ring->irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ __acquires(&self->lock)
|
||||||
work_done = budget;
|
work_done = budget;
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
self->aq_hw_ops->hw_irq_enable(self->aq_hw,
|
self->aq_hw_ops->hw_irq_enable(self->aq_hw,
|
||||||
1U << self->aq_ring_param.vec_idx);
|
1U << self->aq_ring_param.vec_idx);
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,7 +275,7 @@ static int arc_emac_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
work_done = arc_emac_rx(ndev, budget);
|
work_done = arc_emac_rx(ndev, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
arc_reg_or(priv, R_ENABLE, RXINT_MASK | TXINT_MASK);
|
arc_reg_or(priv, R_ENABLE, RXINT_MASK | TXINT_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -311,7 +311,7 @@ static int alx_poll(struct napi_struct *napi, int budget)
|
||||||
if (!tx_complete || work == budget)
|
if (!tx_complete || work == budget)
|
||||||
return budget;
|
return budget;
|
||||||
|
|
||||||
napi_complete(&np->napi);
|
napi_complete_done(&np->napi, work);
|
||||||
|
|
||||||
/* enable interrupt */
|
/* enable interrupt */
|
||||||
if (alx->flags & ALX_FLAG_USING_MSIX) {
|
if (alx->flags & ALX_FLAG_USING_MSIX) {
|
||||||
|
|
|
@ -1892,7 +1892,7 @@ static int atl1c_clean(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
quit_polling:
|
quit_polling:
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
adapter->hw.intr_mask |= ISR_RX_PKT;
|
adapter->hw.intr_mask |= ISR_RX_PKT;
|
||||||
AT_WRITE_REG(&adapter->hw, REG_IMR, adapter->hw.intr_mask);
|
AT_WRITE_REG(&adapter->hw, REG_IMR, adapter->hw.intr_mask);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1526,7 +1526,7 @@ static int atl1e_clean(struct napi_struct *napi, int budget)
|
||||||
/* If no Tx and not enough Rx work done, exit the polling mode */
|
/* If no Tx and not enough Rx work done, exit the polling mode */
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
quit_polling:
|
quit_polling:
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
imr_data = AT_READ_REG(&adapter->hw, REG_IMR);
|
imr_data = AT_READ_REG(&adapter->hw, REG_IMR);
|
||||||
AT_WRITE_REG(&adapter->hw, REG_IMR, imr_data | ISR_RX_EVENT);
|
AT_WRITE_REG(&adapter->hw, REG_IMR, imr_data | ISR_RX_EVENT);
|
||||||
/* test debug */
|
/* test debug */
|
||||||
|
|
|
@ -2457,7 +2457,7 @@ static int atl1_rings_clean(struct napi_struct *napi, int budget)
|
||||||
if (work_done >= budget)
|
if (work_done >= budget)
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
/* re-enable Interrupt */
|
/* re-enable Interrupt */
|
||||||
if (likely(adapter->int_enabled))
|
if (likely(adapter->int_enabled))
|
||||||
atlx_imr_set(adapter, IMR_NORMAL_MASK);
|
atlx_imr_set(adapter, IMR_NORMAL_MASK);
|
||||||
|
|
|
@ -902,7 +902,7 @@ static int b44_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
b44_enable_ints(bp);
|
b44_enable_ints(bp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -511,7 +511,7 @@ static int bcm_enet_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
/* no more packet in rx/tx queue, remove device from poll
|
/* no more packet in rx/tx queue, remove device from poll
|
||||||
* queue */
|
* queue */
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_work_done);
|
||||||
|
|
||||||
/* restore rx/tx interrupt */
|
/* restore rx/tx interrupt */
|
||||||
enet_dmac_writel(priv, priv->dma_chan_int_mask,
|
enet_dmac_writel(priv, priv->dma_chan_int_mask,
|
||||||
|
|
|
@ -1148,7 +1148,7 @@ static int bgmac_poll(struct napi_struct *napi, int weight)
|
||||||
return weight;
|
return weight;
|
||||||
|
|
||||||
if (handled < weight) {
|
if (handled < weight) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, handled);
|
||||||
bgmac_chip_intrs_on(bgmac);
|
bgmac_chip_intrs_on(bgmac);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3515,7 +3515,7 @@ static int bnx2_poll_msix(struct napi_struct *napi, int budget)
|
||||||
rmb();
|
rmb();
|
||||||
if (likely(!bnx2_has_fast_work(bnapi))) {
|
if (likely(!bnx2_has_fast_work(bnapi))) {
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
|
BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD, bnapi->int_num |
|
||||||
BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
|
BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
|
||||||
bnapi->last_status_idx);
|
bnapi->last_status_idx);
|
||||||
|
@ -3552,7 +3552,7 @@ static int bnx2_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
rmb();
|
rmb();
|
||||||
if (likely(!bnx2_has_work(bnapi))) {
|
if (likely(!bnx2_has_work(bnapi))) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
if (likely(bp->flags & BNX2_FLAG_USING_MSI_OR_MSIX)) {
|
if (likely(bp->flags & BNX2_FLAG_USING_MSI_OR_MSIX)) {
|
||||||
BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD,
|
BNX2_WR(bp, BNX2_PCICFG_INT_ACK_CMD,
|
||||||
BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
|
BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |
|
||||||
|
|
|
@ -3224,7 +3224,7 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
|
||||||
* has been updated when NAPI was scheduled.
|
* has been updated when NAPI was scheduled.
|
||||||
*/
|
*/
|
||||||
if (IS_FCOE_FP(fp)) {
|
if (IS_FCOE_FP(fp)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_work_done);
|
||||||
} else {
|
} else {
|
||||||
bnx2x_update_fpsb_idx(fp);
|
bnx2x_update_fpsb_idx(fp);
|
||||||
/* bnx2x_has_rx_work() reads the status block,
|
/* bnx2x_has_rx_work() reads the status block,
|
||||||
|
|
|
@ -1759,7 +1759,7 @@ static int bnxt_poll_nitroa0(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bnxt_has_work(bp, cpr) && rx_pkts < budget) {
|
if (!bnxt_has_work(bp, cpr) && rx_pkts < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_pkts);
|
||||||
BNXT_CP_DB_REARM(cpr->cp_doorbell, cpr->cp_raw_cons);
|
BNXT_CP_DB_REARM(cpr->cp_doorbell, cpr->cp_raw_cons);
|
||||||
}
|
}
|
||||||
return rx_pkts;
|
return rx_pkts;
|
||||||
|
|
|
@ -2537,7 +2537,7 @@ static int sbmac_poll(struct napi_struct *napi, int budget)
|
||||||
sbdma_tx_process(sc, &(sc->sbm_txdma), 1);
|
sbdma_tx_process(sc, &(sc->sbm_txdma), 1);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
#ifdef CONFIG_SBMAC_COALESCE
|
#ifdef CONFIG_SBMAC_COALESCE
|
||||||
__raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) |
|
__raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) |
|
||||||
|
|
|
@ -1881,7 +1881,7 @@ bnad_napi_poll_rx(struct napi_struct *napi, int budget)
|
||||||
return rcvd;
|
return rcvd;
|
||||||
|
|
||||||
poll_exit:
|
poll_exit:
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rcvd);
|
||||||
|
|
||||||
rx_ctrl->rx_complete++;
|
rx_ctrl->rx_complete++;
|
||||||
|
|
||||||
|
|
|
@ -1090,7 +1090,7 @@ static int macb_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
work_done = bp->macbgem_ops.mog_rx(bp, budget);
|
work_done = bp->macbgem_ops.mog_rx(bp, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
/* Packets received while interrupts were disabled */
|
/* Packets received while interrupts were disabled */
|
||||||
status = macb_readl(bp, RSR);
|
status = macb_readl(bp, RSR);
|
||||||
|
|
|
@ -1247,7 +1247,7 @@ static int xgmac_poll(struct napi_struct *napi, int budget)
|
||||||
work_done = xgmac_rx(priv, budget);
|
work_done = xgmac_rx(priv, budget);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
__raw_writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_INTR_ENA);
|
__raw_writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_INTR_ENA);
|
||||||
}
|
}
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
|
@ -2446,7 +2446,7 @@ static int liquidio_napi_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((work_done < budget) && (tx_done)) {
|
if ((work_done < budget) && (tx_done)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
octeon_process_droq_poll_cmd(droq->oct_dev, droq->q_no,
|
octeon_process_droq_poll_cmd(droq->oct_dev, droq->q_no,
|
||||||
POLL_EVENT_ENABLE_INTR, 0);
|
POLL_EVENT_ENABLE_INTR, 0);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1631,7 +1631,7 @@ static int liquidio_napi_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((work_done < budget) && (tx_done)) {
|
if ((work_done < budget) && (tx_done)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
octeon_process_droq_poll_cmd(droq->oct_dev, droq->q_no,
|
octeon_process_droq_poll_cmd(droq->oct_dev, droq->q_no,
|
||||||
POLL_EVENT_ENABLE_INTR, 0);
|
POLL_EVENT_ENABLE_INTR, 0);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -501,7 +501,7 @@ static int octeon_mgmt_napi_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
/* We stopped because no more packets were available. */
|
/* We stopped because no more packets were available. */
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
octeon_mgmt_enable_rx_irq(p);
|
octeon_mgmt_enable_rx_irq(p);
|
||||||
}
|
}
|
||||||
octeon_mgmt_update_rx_stats(netdev);
|
octeon_mgmt_update_rx_stats(netdev);
|
||||||
|
|
|
@ -749,7 +749,7 @@ static int nicvf_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
/* Slow packet rate, exit polling */
|
/* Slow packet rate, exit polling */
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
/* Re-enable interrupts */
|
/* Re-enable interrupts */
|
||||||
cq_head = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_HEAD,
|
cq_head = nicvf_queue_reg_read(nic, NIC_QSET_CQ_0_7_HEAD,
|
||||||
cq->cq_idx);
|
cq->cq_idx);
|
||||||
|
|
|
@ -1605,7 +1605,7 @@ int t1_poll(struct napi_struct *napi, int budget)
|
||||||
int work_done = process_responses(adapter, budget);
|
int work_done = process_responses(adapter, budget);
|
||||||
|
|
||||||
if (likely(work_done < budget)) {
|
if (likely(work_done < budget)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
writel(adapter->sge->respQ.cidx,
|
writel(adapter->sge->respQ.cidx,
|
||||||
adapter->regs + A_SG_SLEEPING);
|
adapter->regs + A_SG_SLEEPING);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1843,7 +1843,7 @@ static int ofld_poll(struct napi_struct *napi, int budget)
|
||||||
__skb_queue_head_init(&queue);
|
__skb_queue_head_init(&queue);
|
||||||
skb_queue_splice_init(&q->rx_queue, &queue);
|
skb_queue_splice_init(&q->rx_queue, &queue);
|
||||||
if (skb_queue_empty(&queue)) {
|
if (skb_queue_empty(&queue)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
spin_unlock_irq(&q->lock);
|
spin_unlock_irq(&q->lock);
|
||||||
return work_done;
|
return work_done;
|
||||||
}
|
}
|
||||||
|
@ -2414,7 +2414,7 @@ static int napi_rx_handler(struct napi_struct *napi, int budget)
|
||||||
int work_done = process_responses(adap, qs, budget);
|
int work_done = process_responses(adap, qs, budget);
|
||||||
|
|
||||||
if (likely(work_done < budget)) {
|
if (likely(work_done < budget)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Because we don't atomically flush the following
|
* Because we don't atomically flush the following
|
||||||
|
|
|
@ -1889,7 +1889,7 @@ static int napi_rx_handler(struct napi_struct *napi, int budget)
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
if (likely(work_done < budget)) {
|
if (likely(work_done < budget)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
intr_params = rspq->next_intr_params;
|
intr_params = rspq->next_intr_params;
|
||||||
rspq->next_intr_params = rspq->intr_params;
|
rspq->next_intr_params = rspq->intr_params;
|
||||||
} else
|
} else
|
||||||
|
|
|
@ -1343,7 +1343,7 @@ static int enic_poll(struct napi_struct *napi, int budget)
|
||||||
* exit polling
|
* exit polling
|
||||||
*/
|
*/
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rq_work_done);
|
||||||
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
|
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
|
||||||
enic_set_int_moderation(enic, &enic->rq[0]);
|
enic_set_int_moderation(enic, &enic->rq[0]);
|
||||||
vnic_intr_unmask(&enic->intr[intr]);
|
vnic_intr_unmask(&enic->intr[intr]);
|
||||||
|
@ -1500,7 +1500,7 @@ static int enic_poll_msix_rq(struct napi_struct *napi, int budget)
|
||||||
* exit polling
|
* exit polling
|
||||||
*/
|
*/
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
|
if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce)
|
||||||
enic_set_int_moderation(enic, &enic->rq[rq]);
|
enic_set_int_moderation(enic, &enic->rq[rq]);
|
||||||
vnic_intr_unmask(&enic->intr[intr]);
|
vnic_intr_unmask(&enic->intr[intr]);
|
||||||
|
|
|
@ -319,8 +319,8 @@ int tulip_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
/* Remove us from polling list and enable RX intr. */
|
/* Remove us from polling list and enable RX intr. */
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
iowrite32(tulip_tbl[tp->chip_id].valid_intrs, tp->base_addr+CSR7);
|
iowrite32(tulip_tbl[tp->chip_id].valid_intrs, tp->base_addr+CSR7);
|
||||||
|
|
||||||
/* The last op happens after poll completion. Which means the following:
|
/* The last op happens after poll completion. Which means the following:
|
||||||
* 1. it can race with disabling irqs in irq handler
|
* 1. it can race with disabling irqs in irq handler
|
||||||
|
@ -355,7 +355,7 @@ int tulip_poll(struct napi_struct *napi, int budget)
|
||||||
* before we did napi_complete(). See? We would lose it. */
|
* before we did napi_complete(). See? We would lose it. */
|
||||||
|
|
||||||
/* remove ourselves from the polling list */
|
/* remove ourselves from the polling list */
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
return work_done;
|
return work_done;
|
||||||
}
|
}
|
||||||
|
|
|
@ -415,7 +415,7 @@ static int dnet_poll(struct napi_struct *napi, int budget)
|
||||||
/* We processed all packets available. Tell NAPI it can
|
/* We processed all packets available. Tell NAPI it can
|
||||||
* stop polling then re-enable rx interrupts.
|
* stop polling then re-enable rx interrupts.
|
||||||
*/
|
*/
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, npackets);
|
||||||
int_enable = dnet_readl(bp, INTR_ENB);
|
int_enable = dnet_readl(bp, INTR_ENB);
|
||||||
int_enable |= DNET_INTR_SRC_RX_CMDFIFOAF;
|
int_enable |= DNET_INTR_SRC_RX_CMDFIFOAF;
|
||||||
dnet_writel(bp, int_enable, INTR_ENB);
|
dnet_writel(bp, int_enable, INTR_ENB);
|
||||||
|
|
|
@ -3324,7 +3324,7 @@ int be_poll(struct napi_struct *napi, int budget)
|
||||||
be_process_mcc(adapter);
|
be_process_mcc(adapter);
|
||||||
|
|
||||||
if (max_work < budget) {
|
if (max_work < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, max_work);
|
||||||
|
|
||||||
/* Skyhawk EQ_DB has a provision to set the rearm to interrupt
|
/* Skyhawk EQ_DB has a provision to set the rearm to interrupt
|
||||||
* delay via a delay multiplier encoding value
|
* delay via a delay multiplier encoding value
|
||||||
|
|
|
@ -614,7 +614,7 @@ static int ethoc_poll(struct napi_struct *napi, int budget)
|
||||||
tx_work_done = ethoc_tx(priv->netdev, budget);
|
tx_work_done = ethoc_tx(priv->netdev, budget);
|
||||||
|
|
||||||
if (rx_work_done < budget && tx_work_done < budget) {
|
if (rx_work_done < budget && tx_work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_work_done);
|
||||||
ethoc_enable_irq(priv, INT_MASK_TX | INT_MASK_RX);
|
ethoc_enable_irq(priv, INT_MASK_TX | INT_MASK_RX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -192,7 +192,7 @@ static int nps_enet_poll(struct napi_struct *napi, int budget)
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
u32 buf_int_enable_value = 0;
|
u32 buf_int_enable_value = 0;
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
/* set tx_done and rx_rdy bits */
|
/* set tx_done and rx_rdy bits */
|
||||||
buf_int_enable_value |= NPS_ENET_ENABLE << RX_RDY_SHIFT;
|
buf_int_enable_value |= NPS_ENET_ENABLE << RX_RDY_SHIFT;
|
||||||
|
|
|
@ -2001,7 +2001,7 @@ static int dpaa_eth_poll(struct napi_struct *napi, int budget)
|
||||||
int cleaned = qman_p_poll_dqrr(np->p, budget);
|
int cleaned = qman_p_poll_dqrr(np->p, budget);
|
||||||
|
|
||||||
if (cleaned < budget) {
|
if (cleaned < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, cleaned);
|
||||||
qman_p_irqsource_add(np->p, QM_PIRQ_DQRI);
|
qman_p_irqsource_add(np->p, QM_PIRQ_DQRI);
|
||||||
|
|
||||||
} else if (np->down) {
|
} else if (np->down) {
|
||||||
|
|
|
@ -1615,7 +1615,7 @@ static int fec_enet_rx_napi(struct napi_struct *napi, int budget)
|
||||||
fec_enet_tx(ndev);
|
fec_enet_tx(ndev);
|
||||||
|
|
||||||
if (pkts < budget) {
|
if (pkts < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, pkts);
|
||||||
writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK);
|
writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK);
|
||||||
}
|
}
|
||||||
return pkts;
|
return pkts;
|
||||||
|
|
|
@ -301,7 +301,7 @@ static int fs_enet_napi(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (received < budget && tx_left) {
|
if (received < budget && tx_left) {
|
||||||
/* done */
|
/* done */
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, received);
|
||||||
(*fep->ops->napi_enable)(dev);
|
(*fep->ops->napi_enable)(dev);
|
||||||
|
|
||||||
return received;
|
return received;
|
||||||
|
|
|
@ -3183,7 +3183,7 @@ static int gfar_poll_rx_sq(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
u32 imask;
|
u32 imask;
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
/* Clear the halt bit in RSTAT */
|
/* Clear the halt bit in RSTAT */
|
||||||
gfar_write(®s->rstat, gfargrp->rstat);
|
gfar_write(®s->rstat, gfargrp->rstat);
|
||||||
|
|
||||||
|
@ -3272,7 +3272,7 @@ static int gfar_poll_rx(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (!num_act_queues) {
|
if (!num_act_queues) {
|
||||||
u32 imask;
|
u32 imask;
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
/* Clear the halt bit in RSTAT */
|
/* Clear the halt bit in RSTAT */
|
||||||
gfar_write(®s->rstat, gfargrp->rstat);
|
gfar_write(®s->rstat, gfargrp->rstat);
|
||||||
|
|
|
@ -3303,7 +3303,7 @@ static int ucc_geth_poll(struct napi_struct *napi, int budget)
|
||||||
howmany += ucc_geth_rx(ugeth, i, budget - howmany);
|
howmany += ucc_geth_rx(ugeth, i, budget - howmany);
|
||||||
|
|
||||||
if (howmany < budget) {
|
if (howmany < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, howmany);
|
||||||
setbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS | UCCE_TX_EVENTS);
|
setbits32(ugeth->uccf->p_uccm, UCCE_RX_EVENTS | UCCE_TX_EVENTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -555,7 +555,7 @@ refill:
|
||||||
priv->reg_inten |= RCV_INT;
|
priv->reg_inten |= RCV_INT;
|
||||||
writel_relaxed(priv->reg_inten, priv->base + PPE_INTEN);
|
writel_relaxed(priv->reg_inten, priv->base + PPE_INTEN);
|
||||||
}
|
}
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx);
|
||||||
done:
|
done:
|
||||||
/* clean up tx descriptors and start a new timer if necessary */
|
/* clean up tx descriptors and start a new timer if necessary */
|
||||||
tx_remaining = hip04_tx_reclaim(ndev, false);
|
tx_remaining = hip04_tx_reclaim(ndev, false);
|
||||||
|
|
|
@ -330,7 +330,7 @@ static int hisi_femac_poll(struct napi_struct *napi, int budget)
|
||||||
} while (ints & DEF_INT_MASK);
|
} while (ints & DEF_INT_MASK);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
hisi_femac_irq_enable(priv, DEF_INT_MASK &
|
hisi_femac_irq_enable(priv, DEF_INT_MASK &
|
||||||
(~IRQ_INT_TX_PER_PACKET));
|
(~IRQ_INT_TX_PER_PACKET));
|
||||||
}
|
}
|
||||||
|
|
|
@ -662,7 +662,7 @@ static int hix5hd2_poll(struct napi_struct *napi, int budget)
|
||||||
} while (ints & DEF_INT_MASK);
|
} while (ints & DEF_INT_MASK);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
hix5hd2_irq_enable(priv);
|
hix5hd2_irq_enable(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1326,7 +1326,7 @@ restart_poll:
|
||||||
ibmveth_replenish_task(adapter);
|
ibmveth_replenish_task(adapter);
|
||||||
|
|
||||||
if (frames_processed < budget) {
|
if (frames_processed < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, frames_processed);
|
||||||
|
|
||||||
/* We think we are done - reenable interrupts,
|
/* We think we are done - reenable interrupts,
|
||||||
* then check once more to make sure we are done.
|
* then check once more to make sure we are done.
|
||||||
|
|
|
@ -987,7 +987,7 @@ restart_poll:
|
||||||
|
|
||||||
if (frames_processed < budget) {
|
if (frames_processed < budget) {
|
||||||
enable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]);
|
enable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]);
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, frames_processed);
|
||||||
if (pending_scrq(adapter, adapter->rx_scrq[scrq_num]) &&
|
if (pending_scrq(adapter, adapter->rx_scrq[scrq_num]) &&
|
||||||
napi_reschedule(napi)) {
|
napi_reschedule(napi)) {
|
||||||
disable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]);
|
disable_scrq_irq(adapter, adapter->rx_scrq[scrq_num]);
|
||||||
|
|
|
@ -2253,7 +2253,7 @@ static int e100_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
/* If budget not fully consumed, exit the polling mode */
|
/* If budget not fully consumed, exit the polling mode */
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
e100_enable_irq(nic);
|
e100_enable_irq(nic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1817,7 +1817,7 @@ ixgb_clean(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
/* If budget not fully consumed, exit the polling mode */
|
/* If budget not fully consumed, exit the polling mode */
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
if (!test_bit(__IXGB_DOWN, &adapter->flags))
|
if (!test_bit(__IXGB_DOWN, &adapter->flags))
|
||||||
ixgb_irq_enable(adapter);
|
ixgb_irq_enable(adapter);
|
||||||
}
|
}
|
||||||
|
|
|
@ -464,7 +464,7 @@ static int korina_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
work_done = korina_rx(dev, budget);
|
work_done = korina_rx(dev, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
writel(readl(&lp->rx_dma_regs->dmasm) &
|
writel(readl(&lp->rx_dma_regs->dmasm) &
|
||||||
~(DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR),
|
~(DMA_STAT_DONE | DMA_STAT_HALT | DMA_STAT_ERR),
|
||||||
|
|
|
@ -156,24 +156,21 @@ ltq_etop_poll_rx(struct napi_struct *napi, int budget)
|
||||||
{
|
{
|
||||||
struct ltq_etop_chan *ch = container_of(napi,
|
struct ltq_etop_chan *ch = container_of(napi,
|
||||||
struct ltq_etop_chan, napi);
|
struct ltq_etop_chan, napi);
|
||||||
int rx = 0;
|
int work_done = 0;
|
||||||
int complete = 0;
|
|
||||||
|
|
||||||
while ((rx < budget) && !complete) {
|
while (work_done < budget) {
|
||||||
struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc];
|
struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc];
|
||||||
|
|
||||||
if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) == LTQ_DMA_C) {
|
if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) != LTQ_DMA_C)
|
||||||
ltq_etop_hw_receive(ch);
|
break;
|
||||||
rx++;
|
ltq_etop_hw_receive(ch);
|
||||||
} else {
|
work_done++;
|
||||||
complete = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (complete || !rx) {
|
if (work_done < budget) {
|
||||||
napi_complete(&ch->napi);
|
napi_complete_done(&ch->napi, work_done);
|
||||||
ltq_dma_ack_irq(&ch->dma);
|
ltq_dma_ack_irq(&ch->dma);
|
||||||
}
|
}
|
||||||
return rx;
|
return work_done;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -2319,7 +2319,7 @@ static int mv643xx_eth_poll(struct napi_struct *napi, int budget)
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
if (mp->oom)
|
if (mp->oom)
|
||||||
mod_timer(&mp->rx_oom, jiffies + (HZ / 10));
|
mod_timer(&mp->rx_oom, jiffies + (HZ / 10));
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
wrlp(mp, INT_MASK, mp->int_mask);
|
wrlp(mp, INT_MASK, mp->int_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2767,11 +2767,9 @@ static int mvneta_poll(struct napi_struct *napi, int budget)
|
||||||
rx_done = mvneta_rx_swbm(pp, budget, &pp->rxqs[rx_queue]);
|
rx_done = mvneta_rx_swbm(pp, budget, &pp->rxqs[rx_queue]);
|
||||||
}
|
}
|
||||||
|
|
||||||
budget -= rx_done;
|
if (rx_done < budget) {
|
||||||
|
|
||||||
if (budget > 0) {
|
|
||||||
cause_rx_tx = 0;
|
cause_rx_tx = 0;
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_done);
|
||||||
|
|
||||||
if (pp->neta_armada3700) {
|
if (pp->neta_armada3700) {
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
|
@ -5405,7 +5405,7 @@ static int mvpp2_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (budget > 0) {
|
if (budget > 0) {
|
||||||
cause_rx = 0;
|
cause_rx = 0;
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_done);
|
||||||
|
|
||||||
mvpp2_interrupts_enable(port);
|
mvpp2_interrupts_enable(port);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1261,7 +1261,7 @@ static int pxa168_rx_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
work_done = rxq_process(dev, budget);
|
work_done = rxq_process(dev, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
wrl(pep, INT_MASK, ALL_INTS);
|
wrl(pep, INT_MASK, ALL_INTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -269,7 +269,7 @@ rx_next:
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rx < budget) {
|
if (rx < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx);
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->reg_imr |= RPKT_FINISH_M;
|
priv->reg_imr |= RPKT_FINISH_M;
|
||||||
|
|
|
@ -1678,7 +1678,7 @@ static int myri10ge_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
myri10ge_ss_unlock_napi(ss);
|
myri10ge_ss_unlock_napi(ss);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
put_be32(htonl(3), ss->irq_claim);
|
put_be32(htonl(3), ss->irq_claim);
|
||||||
}
|
}
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
|
@ -2265,7 +2265,7 @@ static int natsemi_poll(struct napi_struct *napi, int budget)
|
||||||
np->intr_status = readl(ioaddr + IntrStatus);
|
np->intr_status = readl(ioaddr + IntrStatus);
|
||||||
} while (np->intr_status);
|
} while (np->intr_status);
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
/* Reenable interrupts providing nothing is trying to shut
|
/* Reenable interrupts providing nothing is trying to shut
|
||||||
* the chip down. */
|
* the chip down. */
|
||||||
|
|
|
@ -2783,7 +2783,7 @@ static int s2io_poll_msix(struct napi_struct *napi, int budget)
|
||||||
s2io_chk_rx_buffers(nic, ring);
|
s2io_chk_rx_buffers(nic, ring);
|
||||||
|
|
||||||
if (pkts_processed < budget_org) {
|
if (pkts_processed < budget_org) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, pkts_processed);
|
||||||
/*Re Enable MSI-Rx Vector*/
|
/*Re Enable MSI-Rx Vector*/
|
||||||
addr = (u8 __iomem *)&bar0->xmsi_mask_reg;
|
addr = (u8 __iomem *)&bar0->xmsi_mask_reg;
|
||||||
addr += 7 - ring->ring_no;
|
addr += 7 - ring->ring_no;
|
||||||
|
@ -2817,7 +2817,7 @@ static int s2io_poll_inta(struct napi_struct *napi, int budget)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (pkts_processed < budget_org) {
|
if (pkts_processed < budget_org) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, pkts_processed);
|
||||||
/* Re enable the Rx interrupts for the ring */
|
/* Re enable the Rx interrupts for the ring */
|
||||||
writeq(0, &bar0->rx_traffic_mask);
|
writeq(0, &bar0->rx_traffic_mask);
|
||||||
readl(&bar0->rx_traffic_mask);
|
readl(&bar0->rx_traffic_mask);
|
||||||
|
|
|
@ -1823,8 +1823,8 @@ static int vxge_poll_msix(struct napi_struct *napi, int budget)
|
||||||
vxge_hw_vpath_poll_rx(ring->handle);
|
vxge_hw_vpath_poll_rx(ring->handle);
|
||||||
pkts_processed = ring->pkts_processed;
|
pkts_processed = ring->pkts_processed;
|
||||||
|
|
||||||
if (ring->pkts_processed < budget_org) {
|
if (pkts_processed < budget_org) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, pkts_processed);
|
||||||
|
|
||||||
/* Re enable the Rx interrupts for the vpath */
|
/* Re enable the Rx interrupts for the vpath */
|
||||||
vxge_hw_channel_msix_unmask(
|
vxge_hw_channel_msix_unmask(
|
||||||
|
@ -1863,7 +1863,7 @@ static int vxge_poll_inta(struct napi_struct *napi, int budget)
|
||||||
VXGE_COMPLETE_ALL_TX(vdev);
|
VXGE_COMPLETE_ALL_TX(vdev);
|
||||||
|
|
||||||
if (pkts_processed < budget_org) {
|
if (pkts_processed < budget_org) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, pkts_processed);
|
||||||
/* Re enable the Rx interrupts for the ring */
|
/* Re enable the Rx interrupts for the ring */
|
||||||
vxge_hw_device_unmask_all(hldev);
|
vxge_hw_device_unmask_all(hldev);
|
||||||
vxge_hw_device_flush_io(hldev);
|
vxge_hw_device_flush_io(hldev);
|
||||||
|
|
|
@ -3749,7 +3749,7 @@ static int nv_napi_poll(struct napi_struct *napi, int budget)
|
||||||
if (rx_work < budget) {
|
if (rx_work < budget) {
|
||||||
/* re-enable interrupts
|
/* re-enable interrupts
|
||||||
(msix not enabled in napi) */
|
(msix not enabled in napi) */
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_work);
|
||||||
|
|
||||||
writel(np->irqmask, base + NvRegIrqMask);
|
writel(np->irqmask, base + NvRegIrqMask);
|
||||||
}
|
}
|
||||||
|
|
|
@ -999,7 +999,7 @@ static int lpc_eth_poll(struct napi_struct *napi, int budget)
|
||||||
rx_done = __lpc_handle_recv(ndev, budget);
|
rx_done = __lpc_handle_recv(ndev, budget);
|
||||||
|
|
||||||
if (rx_done < budget) {
|
if (rx_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_done);
|
||||||
lpc_eth_enable_int(pldat->net_base);
|
lpc_eth_enable_int(pldat->net_base);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2385,7 +2385,7 @@ static int pch_gbe_napi_poll(struct napi_struct *napi, int budget)
|
||||||
poll_end_flag = true;
|
poll_end_flag = true;
|
||||||
|
|
||||||
if (poll_end_flag) {
|
if (poll_end_flag) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
pch_gbe_irq_enable(adapter);
|
pch_gbe_irq_enable(adapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1575,7 +1575,7 @@ static int pasemi_mac_poll(struct napi_struct *napi, int budget)
|
||||||
pkts = pasemi_mac_clean_rx(rx_ring(mac), budget);
|
pkts = pasemi_mac_clean_rx(rx_ring(mac), budget);
|
||||||
if (pkts < budget) {
|
if (pkts < budget) {
|
||||||
/* all done, no more packets present */
|
/* all done, no more packets present */
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, pkts);
|
||||||
|
|
||||||
pasemi_mac_restart_rx_intr(mac);
|
pasemi_mac_restart_rx_intr(mac);
|
||||||
pasemi_mac_restart_tx_intr(mac);
|
pasemi_mac_restart_tx_intr(mac);
|
||||||
|
|
|
@ -2396,7 +2396,7 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)
|
||||||
work_done = budget;
|
work_done = budget;
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&sds_ring->napi);
|
napi_complete_done(&sds_ring->napi, work_done);
|
||||||
if (test_bit(__NX_DEV_UP, &adapter->state))
|
if (test_bit(__NX_DEV_UP, &adapter->state))
|
||||||
netxen_nic_enable_int(sds_ring);
|
netxen_nic_enable_int(sds_ring);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1372,7 +1372,7 @@ int qede_poll(struct napi_struct *napi, int budget)
|
||||||
qede_rx_int(fp, budget) : 0;
|
qede_rx_int(fp, budget) : 0;
|
||||||
if (rx_work_done < budget) {
|
if (rx_work_done < budget) {
|
||||||
if (!qede_poll_is_more_work(fp)) {
|
if (!qede_poll_is_more_work(fp)) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_work_done);
|
||||||
|
|
||||||
/* Update and reenable interrupts */
|
/* Update and reenable interrupts */
|
||||||
qed_sb_ack(fp->sb_info, IGU_INT_ENABLE, 1);
|
qed_sb_ack(fp->sb_info, IGU_INT_ENABLE, 1);
|
||||||
|
|
|
@ -975,7 +975,7 @@ static int qlcnic_poll(struct napi_struct *napi, int budget)
|
||||||
work_done = budget;
|
work_done = budget;
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&sds_ring->napi);
|
napi_complete_done(&sds_ring->napi, work_done);
|
||||||
if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) {
|
if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) {
|
||||||
qlcnic_enable_sds_intr(adapter, sds_ring);
|
qlcnic_enable_sds_intr(adapter, sds_ring);
|
||||||
qlcnic_enable_tx_intr(adapter, tx_ring);
|
qlcnic_enable_tx_intr(adapter, tx_ring);
|
||||||
|
@ -1019,7 +1019,7 @@ static int qlcnic_rx_poll(struct napi_struct *napi, int budget)
|
||||||
work_done = qlcnic_process_rcv_ring(sds_ring, budget);
|
work_done = qlcnic_process_rcv_ring(sds_ring, budget);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&sds_ring->napi);
|
napi_complete_done(&sds_ring->napi, work_done);
|
||||||
if (test_bit(__QLCNIC_DEV_UP, &adapter->state))
|
if (test_bit(__QLCNIC_DEV_UP, &adapter->state))
|
||||||
qlcnic_enable_sds_intr(adapter, sds_ring);
|
qlcnic_enable_sds_intr(adapter, sds_ring);
|
||||||
}
|
}
|
||||||
|
@ -1966,7 +1966,7 @@ static int qlcnic_83xx_msix_sriov_vf_poll(struct napi_struct *napi, int budget)
|
||||||
work_done = budget;
|
work_done = budget;
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&sds_ring->napi);
|
napi_complete_done(&sds_ring->napi, work_done);
|
||||||
qlcnic_enable_sds_intr(adapter, sds_ring);
|
qlcnic_enable_sds_intr(adapter, sds_ring);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1994,7 +1994,7 @@ static int qlcnic_83xx_poll(struct napi_struct *napi, int budget)
|
||||||
work_done = budget;
|
work_done = budget;
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&sds_ring->napi);
|
napi_complete_done(&sds_ring->napi, work_done);
|
||||||
qlcnic_enable_sds_intr(adapter, sds_ring);
|
qlcnic_enable_sds_intr(adapter, sds_ring);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2032,7 +2032,7 @@ static int qlcnic_83xx_rx_poll(struct napi_struct *napi, int budget)
|
||||||
adapter = sds_ring->adapter;
|
adapter = sds_ring->adapter;
|
||||||
work_done = qlcnic_83xx_process_rcv_ring(sds_ring, budget);
|
work_done = qlcnic_83xx_process_rcv_ring(sds_ring, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&sds_ring->napi);
|
napi_complete_done(&sds_ring->napi, work_done);
|
||||||
if (test_bit(__QLCNIC_DEV_UP, &adapter->state))
|
if (test_bit(__QLCNIC_DEV_UP, &adapter->state))
|
||||||
qlcnic_enable_sds_intr(adapter, sds_ring);
|
qlcnic_enable_sds_intr(adapter, sds_ring);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2334,7 +2334,7 @@ static int ql_napi_poll_msix(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
ql_enable_completion_interrupt(qdev, rx_ring->irq);
|
ql_enable_completion_interrupt(qdev, rx_ring->irq);
|
||||||
}
|
}
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
|
@ -129,7 +129,7 @@ static int emac_napi_rtx(struct napi_struct *napi, int budget)
|
||||||
emac_mac_rx_process(adpt, rx_q, &work_done, budget);
|
emac_mac_rx_process(adpt, rx_q, &work_done, budget);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
irq->mask |= rx_q->intr;
|
irq->mask |= rx_q->intr;
|
||||||
writel(irq->mask, adpt->base + EMAC_INT_MASK);
|
writel(irq->mask, adpt->base + EMAC_INT_MASK);
|
||||||
|
|
|
@ -7583,7 +7583,7 @@ static int rtl8169_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
rtl_irq_enable(tp, enable_mask);
|
rtl_irq_enable(tp, enable_mask);
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
|
|
@ -2517,7 +2517,7 @@ static int rocker_port_poll_rx(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (credits < budget)
|
if (credits < budget)
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, credits);
|
||||||
|
|
||||||
rocker_dma_ring_credits_set(rocker, &rocker_port->rx_ring, credits);
|
rocker_dma_ring_credits_set(rocker, &rocker_port->rx_ring, credits);
|
||||||
|
|
||||||
|
|
|
@ -1563,7 +1563,7 @@ static int sxgbe_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
work_done = sxgbe_rx(priv, budget);
|
work_done = sxgbe_rx(priv, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
priv->hw->dma->enable_dma_irq(priv->ioaddr, qnum);
|
priv->hw->dma->enable_dma_irq(priv->ioaddr, qnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -331,7 +331,7 @@ static int efx_poll(struct napi_struct *napi, int budget)
|
||||||
* since efx_nic_eventq_read_ack() will have no effect if
|
* since efx_nic_eventq_read_ack() will have no effect if
|
||||||
* interrupts have already been disabled.
|
* interrupts have already been disabled.
|
||||||
*/
|
*/
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, spent);
|
||||||
efx_nic_eventq_read_ack(channel);
|
efx_nic_eventq_read_ack(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -327,7 +327,7 @@ static int ef4_poll(struct napi_struct *napi, int budget)
|
||||||
* since ef4_nic_eventq_read_ack() will have no effect if
|
* since ef4_nic_eventq_read_ack() will have no effect if
|
||||||
* interrupts have already been disabled.
|
* interrupts have already been disabled.
|
||||||
*/
|
*/
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, spent);
|
||||||
ef4_nic_eventq_read_ack(channel);
|
ef4_nic_eventq_read_ack(channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -861,7 +861,7 @@ static int smsc9420_rx_poll(struct napi_struct *napi, int budget)
|
||||||
smsc9420_pci_flush_write(pd);
|
smsc9420_pci_flush_write(pd);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(&pd->napi);
|
napi_complete_done(&pd->napi, work_done);
|
||||||
|
|
||||||
/* re-enable RX DMA interrupts */
|
/* re-enable RX DMA interrupts */
|
||||||
dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA);
|
dma_intr_ena = smsc9420_reg_read(pd, DMAC_INTR_ENA);
|
||||||
|
|
|
@ -2684,7 +2684,7 @@ static int stmmac_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
work_done = stmmac_rx(priv, budget);
|
work_done = stmmac_rx(priv, budget);
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
stmmac_enable_dma_irq(priv);
|
stmmac_enable_dma_irq(priv);
|
||||||
}
|
}
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
|
@ -3786,7 +3786,7 @@ static int niu_poll(struct napi_struct *napi, int budget)
|
||||||
work_done = niu_poll_core(np, lp, budget);
|
work_done = niu_poll_core(np, lp, budget);
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
niu_ldg_rearm(np, lp, 1);
|
niu_ldg_rearm(np, lp, 1);
|
||||||
}
|
}
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
|
@ -922,7 +922,7 @@ static int gem_poll(struct napi_struct *napi, int budget)
|
||||||
gp->status = readl(gp->regs + GREG_STAT);
|
gp->status = readl(gp->regs + GREG_STAT);
|
||||||
} while (gp->status & GREG_STAT_NAPI);
|
} while (gp->status & GREG_STAT_NAPI);
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
gem_enable_ints(gp);
|
gem_enable_ints(gp);
|
||||||
|
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
|
@ -860,7 +860,7 @@ int sunvnet_poll_common(struct napi_struct *napi, int budget)
|
||||||
int processed = vnet_event_napi(port, budget);
|
int processed = vnet_event_napi(port, budget);
|
||||||
|
|
||||||
if (processed < budget) {
|
if (processed < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, processed);
|
||||||
port->rx_event &= ~LDC_EVENT_DATA_READY;
|
port->rx_event &= ~LDC_EVENT_DATA_READY;
|
||||||
vio_set_intr(vio->vdev->rx_ino, HV_INTR_ENABLED);
|
vio_set_intr(vio->vdev->rx_ino, HV_INTR_ENABLED);
|
||||||
}
|
}
|
||||||
|
|
|
@ -303,7 +303,7 @@ static int bdx_poll(struct napi_struct *napi, int budget)
|
||||||
* device lock and allow waiting tasks (eg rmmod) to advance) */
|
* device lock and allow waiting tasks (eg rmmod) to advance) */
|
||||||
priv->napi_stop = 0;
|
priv->napi_stop = 0;
|
||||||
|
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
bdx_enable_interrupts(priv);
|
bdx_enable_interrupts(priv);
|
||||||
}
|
}
|
||||||
return work_done;
|
return work_done;
|
||||||
|
|
|
@ -942,7 +942,7 @@ static int cpsw_rx_poll(struct napi_struct *napi_rx, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (num_rx < budget) {
|
if (num_rx < budget) {
|
||||||
napi_complete(napi_rx);
|
napi_complete_done(napi_rx, num_rx);
|
||||||
writel(0xff, &cpsw->wr_regs->rx_en);
|
writel(0xff, &cpsw->wr_regs->rx_en);
|
||||||
if (cpsw->quirk_irq && cpsw->rx_irq_disabled) {
|
if (cpsw->quirk_irq && cpsw->rx_irq_disabled) {
|
||||||
cpsw->rx_irq_disabled = false;
|
cpsw->rx_irq_disabled = false;
|
||||||
|
|
|
@ -1295,7 +1295,7 @@ static int emac_poll(struct napi_struct *napi, int budget)
|
||||||
&emac_rxhost_errcodes[cause][0], ch);
|
&emac_rxhost_errcodes[cause][0], ch);
|
||||||
}
|
}
|
||||||
} else if (num_rx_pkts < budget) {
|
} else if (num_rx_pkts < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, num_rx_pkts);
|
||||||
emac_int_enable(priv);
|
emac_int_enable(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -969,7 +969,7 @@ static int netcp_rx_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
netcp_rxpool_refill(netcp);
|
netcp_rxpool_refill(netcp);
|
||||||
if (packets < budget) {
|
if (packets < budget) {
|
||||||
napi_complete(&netcp->rx_napi);
|
napi_complete_done(&netcp->rx_napi, packets);
|
||||||
knav_queue_enable_notify(netcp->rx_queue);
|
knav_queue_enable_notify(netcp->rx_queue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -681,7 +681,7 @@ static int tile_net_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* There are no packets left. */
|
/* There are no packets left. */
|
||||||
napi_complete(&info_mpipe->napi);
|
napi_complete_done(&info_mpipe->napi, work);
|
||||||
|
|
||||||
md = &mpipe_data[instance];
|
md = &mpipe_data[instance];
|
||||||
/* Re-enable hypervisor interrupts. */
|
/* Re-enable hypervisor interrupts. */
|
||||||
|
|
|
@ -842,7 +842,7 @@ static int tile_net_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
napi_complete(&info->napi);
|
napi_complete_done(&info->napi, work);
|
||||||
|
|
||||||
if (!priv->active)
|
if (!priv->active)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
|
@ -1109,7 +1109,7 @@ static int gelic_net_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (packets_done < budget) {
|
if (packets_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, packets_done);
|
||||||
gelic_card_rx_irq_on(card);
|
gelic_card_rx_irq_on(card);
|
||||||
}
|
}
|
||||||
return packets_done;
|
return packets_done;
|
||||||
|
|
|
@ -1270,7 +1270,7 @@ static int spider_net_poll(struct napi_struct *napi, int budget)
|
||||||
/* if all packets are in the stack, enable interrupts and return 0 */
|
/* if all packets are in the stack, enable interrupts and return 0 */
|
||||||
/* if not, return 1 */
|
/* if not, return 1 */
|
||||||
if (packets_done < budget) {
|
if (packets_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, packets_done);
|
||||||
spider_net_rx_irq_on(card);
|
spider_net_rx_irq_on(card);
|
||||||
card->ignore_rx_ramfull = 0;
|
card->ignore_rx_ramfull = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1638,7 +1638,7 @@ static int tc35815_poll(struct napi_struct *napi, int budget)
|
||||||
spin_unlock(&lp->rx_lock);
|
spin_unlock(&lp->rx_lock);
|
||||||
|
|
||||||
if (received < budget) {
|
if (received < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, received);
|
||||||
/* enable interrupts */
|
/* enable interrupts */
|
||||||
tc_writel(tc_readl(&tr->DMA_Ctl) & ~DMA_IntMask, &tr->DMA_Ctl);
|
tc_writel(tc_readl(&tr->DMA_Ctl) & ~DMA_IntMask, &tr->DMA_Ctl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -887,7 +887,7 @@ static int tsi108_poll(struct napi_struct *napi, int budget)
|
||||||
|
|
||||||
if (num_received < budget) {
|
if (num_received < budget) {
|
||||||
data->rxpending = 0;
|
data->rxpending = 0;
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, num_received);
|
||||||
|
|
||||||
TSI_WRITE(TSI108_EC_INTMASK,
|
TSI_WRITE(TSI108_EC_INTMASK,
|
||||||
TSI_READ(TSI108_EC_INTMASK)
|
TSI_READ(TSI108_EC_INTMASK)
|
||||||
|
|
|
@ -861,7 +861,7 @@ static int rhine_napipoll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
iowrite16(enable_mask, ioaddr + IntrEnable);
|
iowrite16(enable_mask, ioaddr + IntrEnable);
|
||||||
mmiowb();
|
mmiowb();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2160,7 +2160,7 @@ static int velocity_poll(struct napi_struct *napi, int budget)
|
||||||
velocity_tx_srv(vptr);
|
velocity_tx_srv(vptr);
|
||||||
/* If budget not fully consumed, exit the polling mode */
|
/* If budget not fully consumed, exit the polling mode */
|
||||||
if (rx_done < budget) {
|
if (rx_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_done);
|
||||||
mac_enable_int(vptr->mac_regs);
|
mac_enable_int(vptr->mac_regs);
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(&vptr->lock, flags);
|
spin_unlock_irqrestore(&vptr->lock, flags);
|
||||||
|
|
|
@ -915,7 +915,7 @@ static int w5100_napi_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rx_count < budget) {
|
if (rx_count < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_count);
|
||||||
w5100_enable_intr(priv);
|
w5100_enable_intr(priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -417,7 +417,7 @@ static int w5300_napi_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rx_count < budget) {
|
if (rx_count < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, rx_count);
|
||||||
w5300_write(priv, W5300_IMR, IR_S0);
|
w5300_write(priv, W5300_IMR, IR_S0);
|
||||||
mmiowb();
|
mmiowb();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1155,7 +1155,7 @@ static int fjes_poll(struct napi_struct *napi, int budget)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (work_done < budget) {
|
if (work_done < budget) {
|
||||||
napi_complete(napi);
|
napi_complete_done(napi, work_done);
|
||||||
|
|
||||||
if (adapter->unset_rx_last) {
|
if (adapter->unset_rx_last) {
|
||||||
adapter->rx_last_jiffies = jiffies;
|
adapter->rx_last_jiffies = jiffies;
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue