svn commit: r185593 - head/sys/dev/bce
Xin LI
delphij at FreeBSD.org
Wed Dec 3 15:00:14 PST 2008
Author: delphij
Date: Wed Dec 3 23:00:00 2008
New Revision: 185593
URL: http://svn.freebsd.org/changeset/base/185593
Log:
Don't attempt to clear status updates if we did not do a link state
change. As a side effect, this makes the excessive interrupts to
disappear which has been observed as a regression in recent stable/7.
Reported by: many (on -stable@)
Reviewed by: davidch
Modified:
head/sys/dev/bce/if_bce.c
Modified: head/sys/dev/bce/if_bce.c
==============================================================================
--- head/sys/dev/bce/if_bce.c Wed Dec 3 22:47:33 2008 (r185592)
+++ head/sys/dev/bce/if_bce.c Wed Dec 3 23:00:00 2008 (r185593)
@@ -7030,13 +7030,14 @@ bce_intr(void *xsc)
/* Was it a link change interrupt? */
if ((status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) !=
- (sc->status_block->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE))
+ (sc->status_block->status_attn_bits_ack & STATUS_ATTN_BITS_LINK_STATE)) {
bce_phy_intr(sc);
- /* Clear any transient status updates during link state change. */
- REG_WR(sc, BCE_HC_COMMAND,
- sc->hc_command | BCE_HC_COMMAND_COAL_NOW_WO_INT);
- REG_RD(sc, BCE_HC_COMMAND);
+ /* Clear any transient status updates during link state change. */
+ REG_WR(sc, BCE_HC_COMMAND,
+ sc->hc_command | BCE_HC_COMMAND_COAL_NOW_WO_INT);
+ REG_RD(sc, BCE_HC_COMMAND);
+ }
/* If any other attention is asserted then the chip is toast. */
if (((status_attn_bits & ~STATUS_ATTN_BITS_LINK_STATE) !=
More information about the svn-src-all
mailing list