|
@@ -3248,13 +3248,14 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
|
|
rmb();
|
|
rmb();
|
|
|
|
|
|
if (!(bnx2x_has_rx_work(fp) || bnx2x_has_tx_work(fp))) {
|
|
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 {
|
|
} else {
|
|
rx_work_done = budget;
|
|
rx_work_done = budget;
|
|
}
|
|
}
|