aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorCasey Leedom <leedom@chelsio.com>2010-07-19 20:53:48 -0400
committerDavid S. Miller <davem@davemloft.net>2010-07-20 15:42:43 -0400
commitc8639a827fa48985432ad2e0e21b1280a1e3a65e (patch)
tree05f386d5f480f2c7598235b82474b0207258d16c /drivers/net
parent024e6293f959dc86827284bc1d7c93c8baed1ec6 (diff)
cxgb4vf: Fix bug where we were only allocating one queue in MSI mode
Fix bug in setup_sge_queues() where we were incorrectly only allocating a single "Queue Set" for MSI mode. Signed-off-by: Casey Leedom <leedom@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/cxgb4vf/cxgb4vf_main.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/cxgb4vf/cxgb4vf_main.c b/drivers/net/cxgb4vf/cxgb4vf_main.c
index d065516c0ffd..a16563219ac9 100644
--- a/drivers/net/cxgb4vf/cxgb4vf_main.c
+++ b/drivers/net/cxgb4vf/cxgb4vf_main.c
@@ -533,10 +533,9 @@ static int setup_sge_queues(struct adapter *adapter)
533 struct port_info *pi = netdev_priv(dev); 533 struct port_info *pi = netdev_priv(dev);
534 struct sge_eth_rxq *rxq = &s->ethrxq[pi->first_qset]; 534 struct sge_eth_rxq *rxq = &s->ethrxq[pi->first_qset];
535 struct sge_eth_txq *txq = &s->ethtxq[pi->first_qset]; 535 struct sge_eth_txq *txq = &s->ethtxq[pi->first_qset];
536 int nqsets = (adapter->flags & USING_MSIX) ? pi->nqsets : 1;
537 int qs; 536 int qs;
538 537
539 for (qs = 0; qs < nqsets; qs++, rxq++, txq++) { 538 for (qs = 0; qs < pi->nqsets; qs++, rxq++, txq++) {
540 err = t4vf_sge_alloc_rxq(adapter, &rxq->rspq, false, 539 err = t4vf_sge_alloc_rxq(adapter, &rxq->rspq, false,
541 dev, msix++, 540 dev, msix++,
542 &rxq->fl, t4vf_ethrx_handler); 541 &rxq->fl, t4vf_ethrx_handler);
@@ -565,10 +564,9 @@ static int setup_sge_queues(struct adapter *adapter)
565 struct port_info *pi = netdev_priv(dev); 564 struct port_info *pi = netdev_priv(dev);
566 struct sge_eth_rxq *rxq = &s->ethrxq[pi->first_qset]; 565 struct sge_eth_rxq *rxq = &s->ethrxq[pi->first_qset];
567 struct sge_eth_txq *txq = &s->ethtxq[pi->first_qset]; 566 struct sge_eth_txq *txq = &s->ethtxq[pi->first_qset];
568 int nqsets = (adapter->flags & USING_MSIX) ? pi->nqsets : 1;
569 int qs; 567 int qs;
570 568
571 for (qs = 0; qs < nqsets; qs++, rxq++, txq++) { 569 for (qs = 0; qs < pi->nqsets; qs++, rxq++, txq++) {
572 IQ_MAP(s, rxq->rspq.abs_id) = &rxq->rspq; 570 IQ_MAP(s, rxq->rspq.abs_id) = &rxq->rspq;
573 EQ_MAP(s, txq->q.abs_id) = &txq->q; 571 EQ_MAP(s, txq->q.abs_id) = &txq->q;
574 572