Patchwork [net-next-2.6,1/4] ixgbe: fix TX ring enable issues seen when VMDQ is enabled

login
register
mail settings
Submitter Jeff Kirsher
Date Sept. 8, 2010, 7:34 a.m.
Message ID <20100908073229.722.61015.stgit@localhost.localdomain>
Download mbox | patch
Permalink /patch/64102/
State Accepted
Delegated to: David Miller
Headers show

Comments

Jeff Kirsher - Sept. 8, 2010, 7:34 a.m.
From: Alexander Duyck <alexander.h.duyck@intel.com>

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>
---

 drivers/net/ixgbe/ixgbe_main.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Sept. 9, 2010, 4:41 a.m.
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 08 Sep 2010 00:34:29 -0700

> From: Alexander Duyck <alexander.h.duyck@intel.com>
> 
> 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>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 3aafe94..0027d75 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -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);