bnx2x: switch to napi_complete_done()
Switch from napi_complete() to napi_complete_done() for better GRO support (gro_flush_timeout) and core NAPI features. Do not rearm interrupts if we are busy polling, to reduce bus and interrupts overhead. Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Willem de Bruijn <willemb@google.com> Cc: Adam Belay <abelay@google.com> Cc: Tariq Toukan <tariqt@mellanox.com> Cc: Yuval Mintz <Yuval.Mintz@cavium.com> Cc: Ariel Elior <ariel.elior@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2e71328375
commit
80f1c21c53
|
@ -3248,13 +3248,14 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
|
|||
rmb();
|
||||
|
||||
if (!(bnx2x_has_rx_work(fp) || bnx2x_has_tx_work(fp))) {
|
||||
napi_complete(napi);
|
||||
/* Re-enable interrupts */
|
||||
DP(NETIF_MSG_RX_STATUS,
|
||||
"Update index to %d\n", fp->fp_hc_idx);
|
||||
bnx2x_ack_sb(bp, fp->igu_sb_id, USTORM_ID,
|
||||
le16_to_cpu(fp->fp_hc_idx),
|
||||
IGU_INT_ENABLE, 1);
|
||||
if (napi_complete_done(napi, rx_work_done)) {
|
||||
/* Re-enable interrupts */
|
||||
DP(NETIF_MSG_RX_STATUS,
|
||||
"Update index to %d\n", fp->fp_hc_idx);
|
||||
bnx2x_ack_sb(bp, fp->igu_sb_id, USTORM_ID,
|
||||
le16_to_cpu(fp->fp_hc_idx),
|
||||
IGU_INT_ENABLE, 1);
|
||||
}
|
||||
} else {
|
||||
rx_work_done = budget;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue