Move the update of real_num_tx_queues from ixgbe_acquire_msix_vectors() to
ixgbe_set_num_queues(), to ensure it be always in sync with num_rx_queues.

Signed-off-by: Wu Fengguang <fengguang...@intel.com>
---
 drivers/net/ixgbe/ixgbe_main.c |   21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

--- mm.orig/drivers/net/ixgbe/ixgbe_main.c
+++ mm/drivers/net/ixgbe/ixgbe_main.c
@@ -2666,17 +2666,21 @@ static inline bool ixgbe_set_rss_queues(
 
 static void ixgbe_set_num_queues(struct ixgbe_adapter *adapter)
 {
-       /* Start with base case */
-       adapter->num_rx_queues = 1;
-       adapter->num_tx_queues = 1;
-
 #ifdef CONFIG_IXGBE_DCB
        if (ixgbe_set_dcb_queues(adapter))
-               return;
-
+               goto done;
 #endif
+
        if (ixgbe_set_rss_queues(adapter))
-               return;
+               goto done;
+
+       /* fallback to base case */
+       adapter->num_rx_queues = 1;
+       adapter->num_tx_queues = 1;
+
+done:
+       /* Notify the stack of the (possibly) reduced Tx Queue count. */
+       adapter->netdev->real_num_tx_queues = adapter->num_tx_queues;
 }
 
 static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter,
@@ -2933,9 +2937,6 @@ try_msi:
        }
 
 out:
-       /* Notify the stack of the (possibly) reduced Tx Queue count. */
-       adapter->netdev->real_num_tx_queues = adapter->num_tx_queues;
-
        return err;
 }
 

------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel

Reply via email to