Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cea94db9 authored by Michael Chan's avatar Michael Chan Committed by David S. Miller
Browse files

[BNX2]: Add an rx drop counter



Add a counter for packets dropped by firmware.

Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bc726a71
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -4034,6 +4034,8 @@ bnx2_timer(unsigned long data)
	msg = (u32) ++bp->fw_drv_pulse_wr_seq;
	REG_WR_IND(bp, bp->shmem_base + BNX2_DRV_PULSE_MB, msg);

	bp->stats_blk->stat_FwRxDrop = REG_RD_IND(bp, BNX2_FW_RX_DROP_COUNT);

	if ((bp->phy_flags & PHY_SERDES_FLAG) &&
	    (CHIP_NUM(bp) == CHIP_NUM_5706)) {

@@ -4504,6 +4506,10 @@ bnx2_get_stats(struct net_device *dev)
		net_stats->tx_aborted_errors +
		net_stats->tx_carrier_errors;

	net_stats->rx_missed_errors =
		(unsigned long) (stats_blk->stat_IfInMBUFDiscards +
		stats_blk->stat_FwRxDrop);

	return net_stats;
}

@@ -4986,7 +4992,7 @@ bnx2_set_rx_csum(struct net_device *dev, u32 data)
	return 0;
}

#define BNX2_NUM_STATS 45
#define BNX2_NUM_STATS 46

static struct {
	char string[ETH_GSTRING_LEN];
@@ -5036,6 +5042,7 @@ static struct {
	{ "rx_mac_ctrl_frames" },
	{ "rx_filtered_packets" },
	{ "rx_discards" },
	{ "rx_fw_discards" },
};

#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] = {
    STATS_OFFSET32(stat_MacControlFramesReceived),                    
    STATS_OFFSET32(stat_IfInFramesL2FilterDiscards),                  
    STATS_OFFSET32(stat_IfInMBUFDiscards),                            
    STATS_OFFSET32(stat_FwRxDrop),
};

/* stat_IfHCInBadOctets and stat_Dot3StatsCarrierSenseErrors are
@@ -5096,7 +5104,7 @@ static u8 bnx2_5706_stats_len_arr[BNX2_NUM_STATS] = {
	4,0,4,4,4,4,4,4,4,4,
	4,4,4,4,4,4,4,4,4,4,
	4,4,4,4,4,4,4,4,4,4,
	4,4,4,4,4,
	4,4,4,4,4,4,
};

static u8 bnx2_5708_stats_len_arr[BNX2_NUM_STATS] = {
@@ -5104,7 +5112,7 @@ static u8 bnx2_5708_stats_len_arr[BNX2_NUM_STATS] = {
	4,4,4,4,4,4,4,4,4,4,
	4,4,4,4,4,4,4,4,4,4,
	4,4,4,4,4,4,4,4,4,4,
	4,4,4,4,4,
	4,4,4,4,4,4,
};

#define BNX2_NUM_TESTS 6
+3 −0
Original line number Diff line number Diff line
@@ -231,6 +231,7 @@ struct statistics_block {
	u32 stat_GenStat13;
	u32 stat_GenStat14;
	u32 stat_GenStat15;
	u32 stat_FwRxDrop;
};


@@ -3481,6 +3482,8 @@ struct l2_fhdr {

#define BNX2_COM_SCRATCH				0x00120000

#define BNX2_FW_RX_DROP_COUNT				 0x00120084


/*
 *  cp_reg definition