svn commit: r185653 - in stable/7/sys: . dev/bce

Xin LI delphij at FreeBSD.org
Fri Dec 5 13:30:14 PST 2008


Author: delphij
Date: Fri Dec  5 21:30:13 2008
New Revision: 185653
URL: http://svn.freebsd.org/changeset/base/185653

Log:
  MFC r185593:
  
  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
  Approved by:	re (kensmith, kib)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/dev/bce/if_bce.c

Modified: stable/7/sys/dev/bce/if_bce.c
==============================================================================
--- stable/7/sys/dev/bce/if_bce.c	Fri Dec  5 21:19:24 2008	(r185652)
+++ stable/7/sys/dev/bce/if_bce.c	Fri Dec  5 21:30:13 2008	(r185653)
@@ -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