bnx2x: Avoid sending multiple statistics queries
authorDmitry Kravkov <dmitry@broadcom.com>
Tue, 11 Sep 2012 04:34:08 +0000 (04:34 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Sep 2012 20:37:51 +0000 (16:37 -0400)
During traffic when DCB is enabled, it is possible for multiple instances
of statistics queries to be sent to the chip - this may cause the FW to assert.

This patch prevents the sending of an additional instance of statistics query
while the previous query hasn't completed.

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

index 332db64dd5bea11eed0cf878565c5c2e573f5c3e..d848dc9db7b08da2340c66ce6a1a1228ca564bbf 100644 (file)
@@ -1151,9 +1151,11 @@ static void bnx2x_stats_update(struct bnx2x *bp)
        if (bp->port.pmf)
                bnx2x_hw_stats_update(bp);
 
-       if (bnx2x_storm_stats_update(bp) && (bp->stats_pending++ == 3)) {
-               BNX2X_ERR("storm stats were not updated for 3 times\n");
-               bnx2x_panic();
+       if (bnx2x_storm_stats_update(bp)) {
+               if (bp->stats_pending++ == 3) {
+                       BNX2X_ERR("storm stats were not updated for 3 times\n");
+                       bnx2x_panic();
+               }
                return;
        }