svn commit: r257624 - stable/9/sys/dev/bce
Pyun YongHyeon
yongari at FreeBSD.org
Mon Nov 4 08:47:37 UTC 2013
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);
More information about the svn-src-stable-9
mailing list