be2net: Prevent CQ full condition for Lancer

Indicate to HW that the CQ is cleaned up before posting new RX buffers.
This prevents the HW to go into CQ full error condition.

Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Padmanabh Ratnakar 2011-11-03 01:49:55 +00:00 committed by David S. Miller
parent 1610c79f1e
commit 9372cacb30

View File

@ -1905,6 +1905,8 @@ static int be_poll_rx(struct napi_struct *napi, int budget)
be_rx_stats_update(rxo, rxcp);
}
be_cq_notify(adapter, rx_cq->id, false, work_done);
/* Refill the queue */
if (work_done && atomic_read(&rxo->q.used) < RX_FRAGS_REFILL_WM)
be_post_rx_frags(rxo, GFP_ATOMIC);
@ -1912,10 +1914,8 @@ static int be_poll_rx(struct napi_struct *napi, int budget)
/* All consumed */
if (work_done < budget) {
napi_complete(napi);
be_cq_notify(adapter, rx_cq->id, true, work_done);
} else {
/* More to be consumed; continue with interrupts disabled */
be_cq_notify(adapter, rx_cq->id, false, work_done);
/* Arm CQ */
be_cq_notify(adapter, rx_cq->id, true, 0);
}
return work_done;
}