diff options
author | Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com> | 2011-11-03 01:49:55 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-11-03 21:59:40 -0400 |
commit | 9372cacb300df3ee0a8be8a25bea15d16a95c583 (patch) | |
tree | 3e9f4e7dc2ca6df4560b2cf9f51edcda44742e5f /drivers/net/ethernet/emulex | |
parent | 1610c79f1e9545d0a64dc6bb4f9affdfcf1d5726 (diff) | |
download | op-kernel-dev-9372cacb300df3ee0a8be8a25bea15d16a95c583.zip op-kernel-dev-9372cacb300df3ee0a8be8a25bea15d16a95c583.tar.gz |
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>
Diffstat (limited to 'drivers/net/ethernet/emulex')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 2180497..30606f5 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -1905,6 +1905,8 @@ loop_continue: 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 @@ loop_continue: /* 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; } |