38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
From: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
|
|
Date: Fri, 25 Nov 2011 05:48:06 +0000
|
|
Subject: [PATCH 12/58] be2net: Fix error recovery paths
|
|
|
|
commit 3bb62f4f95ba004048bafb460179b5db33aff787 upstream.
|
|
|
|
When TX queues are created again after error recovery,
|
|
netif_set_real_num_tx_queues() is invoked to update number of real
|
|
TX queues created. rtnl lock needs to be held when invoking this routine.
|
|
|
|
Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/emulex/benet/be_main.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
|
|
index c6fb7c3..a1b8ebc 100644
|
|
--- a/drivers/net/ethernet/emulex/benet/be_main.c
|
|
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
|
|
@@ -1666,9 +1666,12 @@ static int be_tx_queues_create(struct be_adapter *adapter)
|
|
u8 i;
|
|
|
|
adapter->num_tx_qs = be_num_txqs_want(adapter);
|
|
- if (adapter->num_tx_qs != MAX_TX_QS)
|
|
+ if (adapter->num_tx_qs != MAX_TX_QS) {
|
|
+ rtnl_lock();
|
|
netif_set_real_num_tx_queues(adapter->netdev,
|
|
adapter->num_tx_qs);
|
|
+ rtnl_unlock();
|
|
+ }
|
|
|
|
adapter->tx_eq.max_eqd = 0;
|
|
adapter->tx_eq.min_eqd = 0;
|
|
--
|
|
1.7.10
|
|
|