]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/sfc/ethtool.c
sfc: Remove static PHY data and enumerations
[net-next-2.6.git] / drivers / net / sfc / ethtool.c
index e86cbca75ea871960f341278a9affcf67950d783..4fe874052e3e0e515cb2b9eb33c43774b8e32b82 100644 (file)
@@ -365,9 +365,21 @@ static int efx_ethtool_fill_self_tests(struct efx_nic *efx,
        efx_fill_test(n++, strings, data, &tests->registers,
                      "core", 0, "registers", NULL);
 
-       for (i = 0; i < efx->phy_op->num_tests; i++)
-               efx_fill_test(n++, strings, data, &tests->phy[i],
-                             "phy", 0, efx->phy_op->test_names[i], NULL);
+       if (efx->phy_op->run_tests != NULL) {
+               EFX_BUG_ON_PARANOID(efx->phy_op->test_name == NULL);
+
+               for (i = 0; true; ++i) {
+                       const char *name;
+
+                       EFX_BUG_ON_PARANOID(i >= EFX_MAX_PHY_TESTS);
+                       name = efx->phy_op->test_name(efx, i);
+                       if (name == NULL)
+                               break;
+
+                       efx_fill_test(n++, strings, data, &tests->phy[i],
+                                     "phy", 0, name, NULL);
+               }
+       }
 
        /* Loopback tests */
        for (mode = LOOPBACK_NONE; mode <= LOOPBACK_TEST_MAX; mode++) {