qlcnic: fix link diag test
o Give sufficient time for all makes of PHY modules to establish the link after loopback test. o Perform online test before offline test. Signed-off-by: Sony Chacko <sony.chacko@qlogic.com> Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
69324275de
commit
8dec32cc42
@ -747,6 +747,14 @@ qlcnic_diag_test(struct net_device *dev, struct ethtool_test *eth_test,
|
||||
{
|
||||
memset(data, 0, sizeof(u64) * QLCNIC_TEST_LEN);
|
||||
|
||||
data[0] = qlcnic_reg_test(dev);
|
||||
if (data[0])
|
||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||
|
||||
data[1] = (u64) qlcnic_test_link(dev);
|
||||
if (data[1])
|
||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||
|
||||
if (eth_test->flags == ETH_TEST_FL_OFFLINE) {
|
||||
data[2] = qlcnic_irq_test(dev);
|
||||
if (data[2])
|
||||
@ -757,15 +765,6 @@ qlcnic_diag_test(struct net_device *dev, struct ethtool_test *eth_test,
|
||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||
|
||||
}
|
||||
|
||||
data[0] = qlcnic_reg_test(dev);
|
||||
if (data[0])
|
||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||
|
||||
/* link test */
|
||||
data[1] = (u64) qlcnic_test_link(dev);
|
||||
if (data[1])
|
||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1245,4 +1245,5 @@ void qlcnic_clear_ilb_mode(struct qlcnic_adapter *adapter)
|
||||
mode = VPORT_MISS_MODE_ACCEPT_MULTI;
|
||||
|
||||
qlcnic_nic_set_promisc(adapter, mode);
|
||||
msleep(1000);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user