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) !=
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to