diff options
Diffstat (limited to 'drivers/net/bnx2.c')
-rw-r--r-- | drivers/net/bnx2.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 7a1fb52d5cba..7ffda643c802 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -4034,6 +4034,8 @@ bnx2_timer(unsigned long data) | |||
4034 | msg = (u32) ++bp->fw_drv_pulse_wr_seq; | 4034 | msg = (u32) ++bp->fw_drv_pulse_wr_seq; |
4035 | REG_WR_IND(bp, bp->shmem_base + BNX2_DRV_PULSE_MB, msg); | 4035 | REG_WR_IND(bp, bp->shmem_base + BNX2_DRV_PULSE_MB, msg); |
4036 | 4036 | ||
4037 | bp->stats_blk->stat_FwRxDrop = REG_RD_IND(bp, BNX2_FW_RX_DROP_COUNT); | ||
4038 | |||
4037 | if ((bp->phy_flags & PHY_SERDES_FLAG) && | 4039 | if ((bp->phy_flags & PHY_SERDES_FLAG) && |
4038 | (CHIP_NUM(bp) == CHIP_NUM_5706)) { | 4040 | (CHIP_NUM(bp) == CHIP_NUM_5706)) { |
4039 | 4041 | ||
@@ -4504,6 +4506,10 @@ bnx2_get_stats(struct net_device *dev) | |||
4504 | net_stats->tx_aborted_errors + | 4506 | net_stats->tx_aborted_errors + |
4505 | net_stats->tx_carrier_errors; | 4507 | net_stats->tx_carrier_errors; |
4506 | 4508 | ||
4509 | net_stats->rx_missed_errors = | ||
4510 | (unsigned long) (stats_blk->stat_IfInMBUFDiscards + | ||
4511 | stats_blk->stat_FwRxDrop); | ||
4512 | |||
4507 | return net_stats; | 4513 | return net_stats; |
4508 | } | 4514 | } |
4509 | 4515 | ||
@@ -4986,7 +4992,7 @@ bnx2_set_rx_csum(struct net_device *dev, u32 data) | |||
4986 | return 0; | 4992 | return 0; |
4987 | } | 4993 | } |
4988 | 4994 | ||
4989 | #define BNX2_NUM_STATS 45 | 4995 | #define BNX2_NUM_STATS 46 |
4990 | 4996 | ||
4991 | static struct { | 4997 | static struct { |
4992 | char string[ETH_GSTRING_LEN]; | 4998 | char string[ETH_GSTRING_LEN]; |
@@ -5036,6 +5042,7 @@ static struct { | |||
5036 | { "rx_mac_ctrl_frames" }, | 5042 | { "rx_mac_ctrl_frames" }, |
5037 | { "rx_filtered_packets" }, | 5043 | { "rx_filtered_packets" }, |
5038 | { "rx_discards" }, | 5044 | { "rx_discards" }, |
5045 | { "rx_fw_discards" }, | ||
5039 | }; | 5046 | }; |
5040 | 5047 | ||
5041 | #define STATS_OFFSET32(offset_name) (offsetof(struct statistics_block, offset_name) / 4) | 5048 | #define STATS_OFFSET32(offset_name) (offsetof(struct statistics_block, offset_name) / 4) |
@@ -5086,6 +5093,7 @@ static const unsigned long bnx2_stats_offset_arr[BNX2_NUM_STATS] = { | |||
5086 | STATS_OFFSET32(stat_MacControlFramesReceived), | 5093 | STATS_OFFSET32(stat_MacControlFramesReceived), |
5087 | STATS_OFFSET32(stat_IfInFramesL2FilterDiscards), | 5094 | STATS_OFFSET32(stat_IfInFramesL2FilterDiscards), |
5088 | STATS_OFFSET32(stat_IfInMBUFDiscards), | 5095 | STATS_OFFSET32(stat_IfInMBUFDiscards), |
5096 | STATS_OFFSET32(stat_FwRxDrop), | ||
5089 | }; | 5097 | }; |
5090 | 5098 | ||
5091 | /* stat_IfHCInBadOctets and stat_Dot3StatsCarrierSenseErrors are | 5099 | /* stat_IfHCInBadOctets and stat_Dot3StatsCarrierSenseErrors are |
@@ -5096,7 +5104,7 @@ static u8 bnx2_5706_stats_len_arr[BNX2_NUM_STATS] = { | |||
5096 | 4,0,4,4,4,4,4,4,4,4, | 5104 | 4,0,4,4,4,4,4,4,4,4, |
5097 | 4,4,4,4,4,4,4,4,4,4, | 5105 | 4,4,4,4,4,4,4,4,4,4, |
5098 | 4,4,4,4,4,4,4,4,4,4, | 5106 | 4,4,4,4,4,4,4,4,4,4, |
5099 | 4,4,4,4,4, | 5107 | 4,4,4,4,4,4, |
5100 | }; | 5108 | }; |
5101 | 5109 | ||
5102 | static u8 bnx2_5708_stats_len_arr[BNX2_NUM_STATS] = { | 5110 | static u8 bnx2_5708_stats_len_arr[BNX2_NUM_STATS] = { |
@@ -5104,7 +5112,7 @@ static u8 bnx2_5708_stats_len_arr[BNX2_NUM_STATS] = { | |||
5104 | 4,4,4,4,4,4,4,4,4,4, | 5112 | 4,4,4,4,4,4,4,4,4,4, |
5105 | 4,4,4,4,4,4,4,4,4,4, | 5113 | 4,4,4,4,4,4,4,4,4,4, |
5106 | 4,4,4,4,4,4,4,4,4,4, | 5114 | 4,4,4,4,4,4,4,4,4,4, |
5107 | 4,4,4,4,4, | 5115 | 4,4,4,4,4,4, |
5108 | }; | 5116 | }; |
5109 | 5117 | ||
5110 | #define BNX2_NUM_TESTS 6 | 5118 | #define BNX2_NUM_TESTS 6 |