diff options
-rw-r--r-- | drivers/net/ixgbe/ixgbe_ethtool.c | 11 |
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 | ||
1885 | skip_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); |