diff options
Diffstat (limited to 'drivers/net/cxgb4vf/cxgb4vf_main.c')
-rw-r--r-- | drivers/net/cxgb4vf/cxgb4vf_main.c | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/drivers/net/cxgb4vf/cxgb4vf_main.c b/drivers/net/cxgb4vf/cxgb4vf_main.c index e988031f7e8..d065516c0ff 100644 --- a/drivers/net/cxgb4vf/cxgb4vf_main.c +++ b/drivers/net/cxgb4vf/cxgb4vf_main.c @@ -423,12 +423,13 @@ static int fwevtq_handler(struct sge_rspq *rspq, const __be64 *rsp, case CPL_SGE_EGR_UPDATE: { /* - * We've received an Egress Queue status update message. - * We get these, as the SGE is currently configured, when - * the firmware passes certain points in processing our - * TX Ethernet Queue. We use these updates to determine - * when we may need to restart a TX Ethernet Queue which - * was stopped for lack of free slots ... + * We've received an Egress Queue Status Update message. We + * get these, if the SGE is configured to send these when the + * firmware passes certain points in processing our TX + * Ethernet Queue or if we make an explicit request for one. + * We use these updates to determine when we may need to + * restart a TX Ethernet Queue which was stopped for lack of + * free TX Queue Descriptors ... */ const struct cpl_sge_egr_update *p = (void *)cpl; unsigned int qid = EGR_QID(be32_to_cpu(p->opcode_qid)); @@ -436,7 +437,6 @@ static int fwevtq_handler(struct sge_rspq *rspq, const __be64 *rsp, struct sge_txq *tq; struct sge_eth_txq *txq; unsigned int eq_idx; - int hw_cidx, reclaimable, in_use; /* * Perform sanity checking on the Queue ID to make sure it @@ -466,24 +466,6 @@ static int fwevtq_handler(struct sge_rspq *rspq, const __be64 *rsp, } /* - * Skip TX Queues which aren't stopped. - */ - if (likely(!netif_tx_queue_stopped(txq->txq))) - break; - - /* - * Skip stopped TX Queues which have more than half of their - * DMA rings occupied with unacknowledged writes. - */ - hw_cidx = be16_to_cpu(txq->q.stat->cidx); - reclaimable = hw_cidx - txq->q.cidx; - if (reclaimable < 0) - reclaimable += txq->q.size; - in_use = txq->q.in_use - reclaimable; - if (in_use >= txq->q.size/2) - break; - - /* * Restart a stopped TX Queue which has less than half of its * TX ring in use ... */ |