]> git.baikalelectronics.ru Git - kernel.git/commit
[BNX2]: Fix occasional counter corruption on 5708.
authorMichael Chan <mchan@broadcom.com>
Tue, 5 Jun 2007 04:24:07 +0000 (21:24 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 7 Jun 2007 20:38:39 +0000 (13:38 -0700)
commit54ff72843bd9587f6193a7d7bbcd54b87d865ad2
tree28736a22d1b51d180f2c1bb9a3e845e178e8e7d3
parente30c86611e2d2f2cb5d6c0bca3badac0a7dc83c7
[BNX2]: Fix occasional counter corruption on 5708.

The statistics block DMA on 5708 can be messed up occasionally on the
average of about once per hour.  If the user is reading the counters
within one second after the corruption, the counters will be all
messed up.  One second later, the counters will be ok again until the
next corruption occurs.

The workaround is to disable the periodic statistics DMA.  Instead,
we manually trigger the DMA once a second in bnx2_timer().  This
manual trigger of the DMA avoids the problem.

As a consequence, we can only allow 0 or 1 second settings for
ethtool -C statistics block.

Thanks to Jean-Daniel Pauget <jd@disjunkt.com> and
CaT <cat@zip.com.au> for reporting this rare problem.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bnx2.c