Skip to content

Commit

Permalink
be2net: don't create multiple TXQs in BE2
Browse files Browse the repository at this point in the history
Multiple TXQ support is partially broken in BE2. It is fully
supported BE3 onwards and in Lancer.

Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Sathya Perla authored and David S. Miller committed Oct 24, 2011
1 parent f9449ab commit dafc0fe
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions drivers/net/ethernet/emulex/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1633,13 +1633,29 @@ static void be_tx_queues_destroy(struct be_adapter *adapter)
be_queue_free(adapter, q);
}

static int be_num_txqs_want(struct be_adapter *adapter)
{
if ((num_vfs && adapter->sriov_enabled) ||
(adapter->function_mode & 0x400) ||
lancer_chip(adapter) || !be_physfn(adapter) ||
adapter->generation == BE_GEN2)
return 1;
else
return MAX_TX_QS;
}

/* One TX event queue is shared by all TX compl qs */
static int be_tx_queues_create(struct be_adapter *adapter)
{
struct be_queue_info *eq, *q, *cq;
struct be_tx_obj *txo;
u8 i;

adapter->num_tx_qs = be_num_txqs_want(adapter);
if (adapter->num_tx_qs != MAX_TX_QS)
netif_set_real_num_tx_queues(adapter->netdev,
adapter->num_tx_qs);

adapter->tx_eq.max_eqd = 0;
adapter->tx_eq.min_eqd = 0;
adapter->tx_eq.cur_eqd = 96;
Expand Down Expand Up @@ -3180,16 +3196,6 @@ static int be_get_config(struct be_adapter *adapter)
if (status)
return status;

if ((num_vfs && adapter->sriov_enabled) ||
(adapter->function_mode & 0x400) ||
lancer_chip(adapter) || !be_physfn(adapter)) {
adapter->num_tx_qs = 1;
netif_set_real_num_tx_queues(adapter->netdev,
adapter->num_tx_qs);
} else {
adapter->num_tx_qs = MAX_TX_QS;
}

return 0;
}

Expand Down

0 comments on commit dafc0fe

Please sign in to comment.