|
@@ -802,16 +802,18 @@ be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data)
|
|
|
|
|
|
if (test->flags & ETH_TEST_FL_OFFLINE) {
|
|
|
if (be_loopback_test(adapter, BE_MAC_LOOPBACK,
|
|
|
- &data[0]) != 0) {
|
|
|
+ &data[0]) != 0)
|
|
|
test->flags |= ETH_TEST_FL_FAILED;
|
|
|
- }
|
|
|
+
|
|
|
if (be_loopback_test(adapter, BE_PHY_LOOPBACK,
|
|
|
- &data[1]) != 0) {
|
|
|
- test->flags |= ETH_TEST_FL_FAILED;
|
|
|
- }
|
|
|
- if (be_loopback_test(adapter, BE_ONE_PORT_EXT_LOOPBACK,
|
|
|
- &data[2]) != 0) {
|
|
|
+ &data[1]) != 0)
|
|
|
test->flags |= ETH_TEST_FL_FAILED;
|
|
|
+
|
|
|
+ if (test->flags & ETH_TEST_FL_EXTERNAL_LB) {
|
|
|
+ if (be_loopback_test(adapter, BE_ONE_PORT_EXT_LOOPBACK,
|
|
|
+ &data[2]) != 0)
|
|
|
+ test->flags |= ETH_TEST_FL_FAILED;
|
|
|
+ test->flags |= ETH_TEST_FL_EXTERNAL_LB_DONE;
|
|
|
}
|
|
|
}
|
|
|
|