bnx2x: properly initialize FW stats
authorDmitry Kravkov <dmitry@broadcom.com>
Wed, 6 Oct 2010 03:35:03 +0000 (03:35 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Oct 2010 21:10:41 +0000 (14:10 -0700)
Client statistics need to be initialized to -1

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2x/bnx2x_stats.c

index 5644bddb3d19638cabccbcb8f6cc9a643c607106..4733c835dad950a7ba8966a94d284752a345656a 100644 (file)
@@ -1339,6 +1339,7 @@ void bnx2x_stats_init(struct bnx2x *bp)
        int port = BP_PORT(bp);
        int mb_idx = BP_FW_MB_IDX(bp);
        int i;
+       struct eth_stats_query *stats = bnx2x_sp(bp, fw_stats);
 
        bp->stats_pending = 0;
        bp->executer_idx = 0;
@@ -1380,6 +1381,18 @@ void bnx2x_stats_init(struct bnx2x *bp)
                memset(&fp->eth_q_stats, 0, sizeof(struct bnx2x_eth_q_stats));
        }
 
+       for_each_queue(bp, i) {
+               /* Set initial stats counter in the stats ramrod data to -1 */
+               int cl_id = bp->fp[i].cl_id;
+
+               stats->xstorm_common.client_statistics[cl_id].
+                       stats_counter = 0xffff;
+               stats->ustorm_common.client_statistics[cl_id].
+                       stats_counter = 0xffff;
+               stats->tstorm_common.client_statistics[cl_id].
+                       stats_counter = 0xffff;
+       }
+
        memset(&bp->dev->stats, 0, sizeof(struct net_device_stats));
        memset(&bp->eth_stats, 0, sizeof(struct bnx2x_eth_stats));