Solve issue where no stats were being collected for VF devices due to missing
configuration in the stats' atomic synchronization mechanism.
Signed-off-by: Ariel Elior <ariele@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>
 /* should be called under stats_sema */
 static void __bnx2x_stats_start(struct bnx2x *bp)
 {
-       /* vfs travel through here as part of the statistics FSM, but no action
-        * is required
-        */
-       if (IS_VF(bp))
-               return;
-
-       if (bp->port.pmf)
-               bnx2x_port_stats_init(bp);
+       if (IS_PF(bp)) {
+               if (bp->port.pmf)
+                       bnx2x_port_stats_init(bp);
 
-       else if (bp->func_stx)
-               bnx2x_func_stats_init(bp);
+               else if (bp->func_stx)
+                       bnx2x_func_stats_init(bp);
 
-       bnx2x_hw_stats_post(bp);
-       bnx2x_storm_stats_post(bp);
+               bnx2x_hw_stats_post(bp);
+               bnx2x_storm_stats_post(bp);
+       }
 
        bp->stats_started = true;
 }