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. Reported by: Paul Herman (herman <> cleverbridge dot com) Tested by: sbruno, Paul Herman (herman <> cleverbridge dot com)
This commit is contained in:
parent
c3767eab77
commit
5aefcb0b42
@ -5112,9 +5112,11 @@ bce_reset(struct bce_softc *sc, u32 reset_code)
|
||||
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user