Re: [PATCH net v4 1/6] bnx2x: properly initialize statistic counters
From: Benjamin Poirier <hidden>
Date: 2013-08-12 20:08:23
On 2013/08/06 00:35, Dmitry Kravkov wrote:
quoted hunk ↗ jump to hunk
This prevent second statistics query be sent before first one is complete. This is required since two outstanding queries may cause FW assert. Signed-off-by: Dmitry Kravkov <redacted> Signed-off-by: Ariel Elior <redacted> Signed-off-by: Eilon Greenstein <redacted> --- drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c index 98366ab..a22ad61 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c@@ -1589,12 +1589,17 @@ void bnx2x_memset_stats(struct bnx2x *bp) void bnx2x_stats_init(struct bnx2x *bp) { - int /*abs*/port = BP_PORT(bp); + struct stats_counter *counters = &bp->fw_stats_data->storm_counters; int mb_idx = BP_FW_MB_IDX(bp); + int port = BP_PORT(bp); bp->stats_pending = 0; bp->executer_idx = 0; bp->stats_counter = 0; + counters->xstats_counter = cpu_to_le16(0xFFFF); + counters->tstats_counter = cpu_to_le16(0xFFFF); + counters->ustats_counter = cpu_to_le16(0xFFFF); + counters->cstats_counter = cpu_to_le16(0xFFFF);
I think the following code executed a little later becomes redundant:
static void bnx2x_prep_fw_stats_req(struct bnx2x *bp)
{
[...]
/* prepare to the first stats ramrod (will be completed with
* the counters equal to zero) - init counters to somethig different.
*/
memset(&bp->fw_stats_data->storm_counters, 0xff,
sizeof(struct stats_counter));