e1000e: don't accumulate PHY statistics on PHY read failure

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Bruce Allan and committed by David S. Miller 29477e24 28b8f04a

+14 -14
+14 -14
drivers/net/e1000e/netdev.c
··· 3315 3315 if ((hw->phy.type == e1000_phy_82578) || 3316 3316 (hw->phy.type == e1000_phy_82577)) { 3317 3317 e1e_rphy(hw, HV_SCC_UPPER, &phy_data); 3318 - e1e_rphy(hw, HV_SCC_LOWER, &phy_data); 3319 - adapter->stats.scc += phy_data; 3318 + if (!e1e_rphy(hw, HV_SCC_LOWER, &phy_data)) 3319 + adapter->stats.scc += phy_data; 3320 3320 3321 3321 e1e_rphy(hw, HV_ECOL_UPPER, &phy_data); 3322 - e1e_rphy(hw, HV_ECOL_LOWER, &phy_data); 3323 - adapter->stats.ecol += phy_data; 3322 + if (!e1e_rphy(hw, HV_ECOL_LOWER, &phy_data)) 3323 + adapter->stats.ecol += phy_data; 3324 3324 3325 3325 e1e_rphy(hw, HV_MCC_UPPER, &phy_data); 3326 - e1e_rphy(hw, HV_MCC_LOWER, &phy_data); 3327 - adapter->stats.mcc += phy_data; 3326 + if (!e1e_rphy(hw, HV_MCC_LOWER, &phy_data)) 3327 + adapter->stats.mcc += phy_data; 3328 3328 3329 3329 e1e_rphy(hw, HV_LATECOL_UPPER, &phy_data); 3330 - e1e_rphy(hw, HV_LATECOL_LOWER, &phy_data); 3331 - adapter->stats.latecol += phy_data; 3330 + if (!e1e_rphy(hw, HV_LATECOL_LOWER, &phy_data)) 3331 + adapter->stats.latecol += phy_data; 3332 3332 3333 3333 e1e_rphy(hw, HV_DC_UPPER, &phy_data); 3334 - e1e_rphy(hw, HV_DC_LOWER, &phy_data); 3335 - adapter->stats.dc += phy_data; 3334 + if (!e1e_rphy(hw, HV_DC_LOWER, &phy_data)) 3335 + adapter->stats.dc += phy_data; 3336 3336 } else { 3337 3337 adapter->stats.scc += er32(SCC); 3338 3338 adapter->stats.ecol += er32(ECOL); ··· 3360 3360 if ((hw->phy.type == e1000_phy_82578) || 3361 3361 (hw->phy.type == e1000_phy_82577)) { 3362 3362 e1e_rphy(hw, HV_COLC_UPPER, &phy_data); 3363 - e1e_rphy(hw, HV_COLC_LOWER, &phy_data); 3364 - hw->mac.collision_delta = phy_data; 3363 + if (!e1e_rphy(hw, HV_COLC_LOWER, &phy_data)) 3364 + hw->mac.collision_delta = phy_data; 3365 3365 } else { 3366 3366 hw->mac.collision_delta = er32(COLC); 3367 3367 } ··· 3372 3372 if ((hw->phy.type == e1000_phy_82578) || 3373 3373 (hw->phy.type == e1000_phy_82577)) { 3374 3374 e1e_rphy(hw, HV_TNCRS_UPPER, &phy_data); 3375 - e1e_rphy(hw, HV_TNCRS_LOWER, &phy_data); 3376 - adapter->stats.tncrs += phy_data; 3375 + if (!e1e_rphy(hw, HV_TNCRS_LOWER, &phy_data)) 3376 + adapter->stats.tncrs += phy_data; 3377 3377 } else { 3378 3378 if ((hw->mac.type != e1000_82574) && 3379 3379 (hw->mac.type != e1000_82583))