Commit d602de05 authored by Joe Schultz's avatar Joe Schultz Committed by Jeff Kirsher

igb: Explicitly label self-test result indices

Previously, the ethtool self-test gstrings/data arrays were accessed via
hardcoded indices, which made the code difficult to follow. This patch
replaces the hardcoded values with enum-based labels.
Signed-off-by: default avatarJoe Schultz <jschultz@xes-inc.com>
Signed-off-by: default avatarAaron Sierra <asierra@xes-inc.com>
Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 3627f8f1
...@@ -127,10 +127,20 @@ static const struct igb_stats igb_gstrings_net_stats[] = { ...@@ -127,10 +127,20 @@ static const struct igb_stats igb_gstrings_net_stats[] = {
#define IGB_STATS_LEN \ #define IGB_STATS_LEN \
(IGB_GLOBAL_STATS_LEN + IGB_NETDEV_STATS_LEN + IGB_QUEUE_STATS_LEN) (IGB_GLOBAL_STATS_LEN + IGB_NETDEV_STATS_LEN + IGB_QUEUE_STATS_LEN)
enum igb_diagnostics_results {
TEST_REG = 0,
TEST_EEP,
TEST_IRQ,
TEST_LOOP,
TEST_LINK
};
static const char igb_gstrings_test[][ETH_GSTRING_LEN] = { static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
"Register test (offline)", "Eeprom test (offline)", [TEST_REG] = "Register test (offline)",
"Interrupt test (offline)", "Loopback test (offline)", [TEST_EEP] = "Eeprom test (offline)",
"Link test (on/offline)" [TEST_IRQ] = "Interrupt test (offline)",
[TEST_LOOP] = "Loopback test (offline)",
[TEST_LINK] = "Link test (on/offline)"
}; };
#define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN) #define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN)
...@@ -2002,7 +2012,7 @@ static void igb_diag_test(struct net_device *netdev, ...@@ -2002,7 +2012,7 @@ static void igb_diag_test(struct net_device *netdev,
/* Link test performed before hardware reset so autoneg doesn't /* Link test performed before hardware reset so autoneg doesn't
* interfere with test result * interfere with test result
*/ */
if (igb_link_test(adapter, &data[4])) if (igb_link_test(adapter, &data[TEST_LINK]))
eth_test->flags |= ETH_TEST_FL_FAILED; eth_test->flags |= ETH_TEST_FL_FAILED;
if (if_running) if (if_running)
...@@ -2011,21 +2021,21 @@ static void igb_diag_test(struct net_device *netdev, ...@@ -2011,21 +2021,21 @@ static void igb_diag_test(struct net_device *netdev,
else else
igb_reset(adapter); igb_reset(adapter);
if (igb_reg_test(adapter, &data[0])) if (igb_reg_test(adapter, &data[TEST_REG]))
eth_test->flags |= ETH_TEST_FL_FAILED; eth_test->flags |= ETH_TEST_FL_FAILED;
igb_reset(adapter); igb_reset(adapter);
if (igb_eeprom_test(adapter, &data[1])) if (igb_eeprom_test(adapter, &data[TEST_EEP]))
eth_test->flags |= ETH_TEST_FL_FAILED; eth_test->flags |= ETH_TEST_FL_FAILED;
igb_reset(adapter); igb_reset(adapter);
if (igb_intr_test(adapter, &data[2])) if (igb_intr_test(adapter, &data[TEST_IRQ]))
eth_test->flags |= ETH_TEST_FL_FAILED; eth_test->flags |= ETH_TEST_FL_FAILED;
igb_reset(adapter); igb_reset(adapter);
/* power up link for loopback test */ /* power up link for loopback test */
igb_power_up_link(adapter); igb_power_up_link(adapter);
if (igb_loopback_test(adapter, &data[3])) if (igb_loopback_test(adapter, &data[TEST_LOOP]))
eth_test->flags |= ETH_TEST_FL_FAILED; eth_test->flags |= ETH_TEST_FL_FAILED;
/* restore speed, duplex, autoneg settings */ /* restore speed, duplex, autoneg settings */
...@@ -2045,16 +2055,16 @@ static void igb_diag_test(struct net_device *netdev, ...@@ -2045,16 +2055,16 @@ static void igb_diag_test(struct net_device *netdev,
dev_info(&adapter->pdev->dev, "online testing starting\n"); dev_info(&adapter->pdev->dev, "online testing starting\n");
/* PHY is powered down when interface is down */ /* PHY is powered down when interface is down */
if (if_running && igb_link_test(adapter, &data[4])) if (if_running && igb_link_test(adapter, &data[TEST_LINK]))
eth_test->flags |= ETH_TEST_FL_FAILED; eth_test->flags |= ETH_TEST_FL_FAILED;
else else
data[4] = 0; data[TEST_LINK] = 0;
/* Online tests aren't run; pass by default */ /* Online tests aren't run; pass by default */
data[0] = 0; data[TEST_REG] = 0;
data[1] = 0; data[TEST_EEP] = 0;
data[2] = 0; data[TEST_IRQ] = 0;
data[3] = 0; data[TEST_LOOP] = 0;
clear_bit(__IGB_TESTING, &adapter->state); clear_bit(__IGB_TESTING, &adapter->state);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment