Author: yongari
Date: Mon Nov  4 08:47:36 2013
New Revision: 257624
URL: http://svnweb.freebsd.org/changeset/base/257624

Log:
  MFC r257307:
    Fix regression introduced in r235816.
    r235816 triggered kernel panic or hang after warm boot.
    Don't blindly restore BCE_EMAC_MODE media configuration in
    bce_reset().  If driver is about to shutdown it will invoke
    bce_reset() which in turn results in restoring BCE_EMAC_MODE
    media configuration.  This operation seems to confuse controller
    firmware.

Modified:
  stable/9/sys/dev/bce/if_bce.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/bce/if_bce.c
==============================================================================
--- stable/9/sys/dev/bce/if_bce.c       Mon Nov  4 08:46:50 2013        
(r257623)
+++ stable/9/sys/dev/bce/if_bce.c       Mon Nov  4 08:47:36 2013        
(r257624)
@@ -5064,9 +5064,11 @@ bce_reset(struct bce_softc *sc, u32 rese
 
 bce_reset_exit:
        /* Restore EMAC Mode bits needed to keep ASF/IPMI running. */
-       val = REG_RD(sc, BCE_EMAC_MODE);
-       val = (val & ~emac_mode_mask) | emac_mode_save;
-       REG_WR(sc, BCE_EMAC_MODE, val);
+       if (reset_code == BCE_DRV_MSG_CODE_RESET) {
+               val = REG_RD(sc, BCE_EMAC_MODE);
+               val = (val & ~emac_mode_mask) | emac_mode_save;
+               REG_WR(sc, BCE_EMAC_MODE, val);
+       }
 
        DBEXIT(BCE_VERBOSE_RESET);
        return (rc);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "[email protected]"

Reply via email to