e1000e: Fix ethtool offline tests for 82579 parts
authorDavid Ertman <davidx.m.ertman@intel.com>
Wed, 5 Mar 2014 07:54:19 +0000 (07:54 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sat, 8 Mar 2014 07:48:58 +0000 (23:48 -0800)
Changes to the rar_entry_count value require a change to the indexing
used to access the SHRA[H|L] registers when testing them with
'ethtool -t <iface> offline'

Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/e1000e/ethtool.c

index 7a479022a8c6425e0b071001162467f5ac3392cd..3c2898d0c2aa3ef0779e22e79167be37ba71e8ee 100644 (file)
@@ -917,15 +917,21 @@ static int e1000_reg_test(struct e1000_adapter *adapter, u64 *data)
                }
                if (mac->type == e1000_pch2lan) {
                        /* SHRAH[0,1,2] different than previous */
-                       if (i == 7)
+                       if (i == 1)
                                mask &= 0xFFF4FFFF;
                        /* SHRAH[3] different than SHRAH[0,1,2] */
-                       if (i == 10)
+                       if (i == 4)
                                mask |= (1 << 30);
+                       /* RAR[1-6] owned by management engine - skipping */
+                       if (i > 0)
+                               i += 6;
                }
 
                REG_PATTERN_TEST_ARRAY(E1000_RA, ((i << 1) + 1), mask,
                                       0xFFFFFFFF);
+               /* reset index to actual value */
+               if ((mac->type == e1000_pch2lan) && (i > 6))
+                       i -= 6;
        }
 
        for (i = 0; i < mac->mta_reg_count; i++)