aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);