ixgbe: fix TX ring enable issues seen when VMDQ is enabled
authorAlexander Duyck <alexander.h.duyck@intel.com>
Tue, 7 Sep 2010 21:34:29 +0000 (21:34 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Sep 2010 21:46:26 +0000 (14:46 -0700)
The ordering of operations was messed up in the init and as a result when
VMDQ was enabled we were trying to enable TX rings before setting the VFTE
bits. This resulted in a ring that appeared to fail to enable when in fact
it was blocked because the VFTE bits were cleared after the reset.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ixgbe/ixgbe_main.c

index 3aafe94741ba5718f74a006b4a67aeef5337c875..0027d75615165c033d470febd71e4b290318206f 100644 (file)
@@ -3004,7 +3004,6 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
 
        /* Program registers for the distribution of queues */
        ixgbe_setup_mrqc(adapter);
-       ixgbe_configure_virtualization(adapter);
 
        ixgbe_set_uta(adapter);
 
@@ -3391,6 +3390,7 @@ static void ixgbe_configure(struct ixgbe_adapter *adapter)
        } else if (adapter->flags & IXGBE_FLAG_FDIR_PERFECT_CAPABLE) {
                ixgbe_init_fdir_perfect_82599(hw, adapter->fdir_pballoc);
        }
+       ixgbe_configure_virtualization(adapter);
 
        ixgbe_configure_tx(adapter);
        ixgbe_configure_rx(adapter);