diff options
Diffstat (limited to 'drivers/net/igb/igb_main.c')
-rw-r--r-- | drivers/net/igb/igb_main.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index b989b34a4adb..cba0115a6a57 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -3975,7 +3975,7 @@ void igb_update_stats(struct igb_adapter *adapter) | |||
3975 | struct net_device_stats *net_stats = igb_get_stats(adapter->netdev); | 3975 | struct net_device_stats *net_stats = igb_get_stats(adapter->netdev); |
3976 | struct e1000_hw *hw = &adapter->hw; | 3976 | struct e1000_hw *hw = &adapter->hw; |
3977 | struct pci_dev *pdev = adapter->pdev; | 3977 | struct pci_dev *pdev = adapter->pdev; |
3978 | u32 rnbc; | 3978 | u32 rnbc, reg; |
3979 | u16 phy_tmp; | 3979 | u16 phy_tmp; |
3980 | int i; | 3980 | int i; |
3981 | u64 bytes, packets; | 3981 | u64 bytes, packets; |
@@ -4072,8 +4072,13 @@ void igb_update_stats(struct igb_adapter *adapter) | |||
4072 | adapter->stats.colc += rd32(E1000_COLC); | 4072 | adapter->stats.colc += rd32(E1000_COLC); |
4073 | 4073 | ||
4074 | adapter->stats.algnerrc += rd32(E1000_ALGNERRC); | 4074 | adapter->stats.algnerrc += rd32(E1000_ALGNERRC); |
4075 | adapter->stats.rxerrc += rd32(E1000_RXERRC); | 4075 | /* read internal phy specific stats */ |
4076 | adapter->stats.tncrs += rd32(E1000_TNCRS); | 4076 | reg = rd32(E1000_CTRL_EXT); |
4077 | if (!(reg & E1000_CTRL_EXT_LINK_MODE_MASK)) { | ||
4078 | adapter->stats.rxerrc += rd32(E1000_RXERRC); | ||
4079 | adapter->stats.tncrs += rd32(E1000_TNCRS); | ||
4080 | } | ||
4081 | |||
4077 | adapter->stats.tsctc += rd32(E1000_TSCTC); | 4082 | adapter->stats.tsctc += rd32(E1000_TSCTC); |
4078 | adapter->stats.tsctfc += rd32(E1000_TSCTFC); | 4083 | adapter->stats.tsctfc += rd32(E1000_TSCTFC); |
4079 | 4084 | ||