Print this page
First attempt at pulling 4310 fix from Andy Giles tree

*** 9854,9863 **** --- 9854,9883 ---- "after fault was detected"); } } /* + * If we set the "please reset me" flag, then reset. + */ + if (mpt->m_softstate & MPTSAS_SS_RESET_INWATCH) { + doorbell = ddi_get32(mpt->m_datap, + &mpt->m_reg->Doorbell); + mptsas_log(mpt, CE_WARN, "MPT Forced Reset, " + "doorbell: %04x", doorbell); + mpt->m_softstate &= ~MPTSAS_SS_MSG_UNIT_RESET; + if (mpt->m_softstate & MPTSAS_SS_MUR_INWATCH) + mpt->m_softstate |= MPTSAS_SS_MSG_UNIT_RESET; + mpt->m_softstate &= ~(MPTSAS_SS_RESET_INWATCH| + MPTSAS_SS_MUR_INWATCH); + if ((mptsas_restart_ioc(mpt)) == DDI_FAILURE) { + mptsas_log(mpt, CE_WARN, "Reset failed" + "after fault was detected"); + } + } + + + /* * For now, always call mptsas_watchsubr. */ mptsas_watchsubr(mpt); if (mpt->m_options & MPTSAS_OPT_PM) {