aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorGreg Rose <gregory.v.rose@intel.com>2010-01-08 21:27:05 -0500
committerDavid S. Miller <davem@davemloft.net>2010-01-10 16:34:27 -0500
commitbdbec4b86ee99b020e159f9bd604003a3ae3b0ab (patch)
treecf0ba86499dc3a1fa41f22ed9d382db2fcc28d49 /drivers
parent1cdd1ec8784399eef55a60887a45f3f46a1c240a (diff)
ixgbe: Fix ethtool diag test for VT mode operation
Skip MAC loopback test when the adapter is set to a VT mode such as SR-IOV or VMDq Signed-off-by: Greg Rose <gregory.v.rose@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ixgbe/ixgbe_ethtool.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c
index 0bd49d3b9f65..a0107b5a28e7 100644
--- a/drivers/net/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ixgbe/ixgbe_ethtool.c
@@ -1867,11 +1867,22 @@ static void ixgbe_diag_test(struct net_device *netdev,
1867 if (ixgbe_intr_test(adapter, &data[2])) 1867 if (ixgbe_intr_test(adapter, &data[2]))
1868 eth_test->flags |= ETH_TEST_FL_FAILED; 1868 eth_test->flags |= ETH_TEST_FL_FAILED;
1869 1869
1870 /* If SRIOV or VMDq is enabled then skip MAC
1871 * loopback diagnostic. */
1872 if (adapter->flags & (IXGBE_FLAG_SRIOV_ENABLED |
1873 IXGBE_FLAG_VMDQ_ENABLED)) {
1874 DPRINTK(HW, INFO, "Skip MAC loopback diagnostic in VT "
1875 "mode\n");
1876 data[3] = 0;
1877 goto skip_loopback;
1878 }
1879
1870 ixgbe_reset(adapter); 1880 ixgbe_reset(adapter);
1871 DPRINTK(HW, INFO, "loopback testing starting\n"); 1881 DPRINTK(HW, INFO, "loopback testing starting\n");
1872 if (ixgbe_loopback_test(adapter, &data[3])) 1882 if (ixgbe_loopback_test(adapter, &data[3]))
1873 eth_test->flags |= ETH_TEST_FL_FAILED; 1883 eth_test->flags |= ETH_TEST_FL_FAILED;
1874 1884
1885skip_loopback:
1875 ixgbe_reset(adapter); 1886 ixgbe_reset(adapter);
1876 1887
1877 clear_bit(__IXGBE_TESTING, &adapter->state); 1888 clear_bit(__IXGBE_TESTING, &adapter->state);