Print this page
First attempt at pulling 4310 fix from Andy Giles tree
*** 1194,1214 ****
* clear the TM slot before returning
*/
slots->m_slot[MPTSAS_TM_SLOT(mpt)] = NULL;
/*
! * If we lost our task management command
! * we need to reset the ioc
*/
if (rval == FALSE) {
mptsas_log(mpt, CE_WARN, "mptsas_ioc_task_management failed "
! "try to reset ioc to recovery!");
! mpt->m_softstate &= ~MPTSAS_SS_MSG_UNIT_RESET;
! if (mptsas_restart_ioc(mpt)) {
! mptsas_log(mpt, CE_WARN, "mptsas_restart_ioc failed");
! rval = FAILED;
! }
}
return (rval);
}
--- 1194,1212 ----
* clear the TM slot before returning
*/
slots->m_slot[MPTSAS_TM_SLOT(mpt)] = NULL;
/*
! * If we lost our task management command we need to reset the ioc
! * but we can't do it here as it's most likely we were called from
! * the taskq that mptsas_restart_ioc()->mptsas_flush_hba() needs to
! * wait for. So set a flag for mptsas_watch().
*/
if (rval == FALSE) {
mptsas_log(mpt, CE_WARN, "mptsas_ioc_task_management failed "
! "schedule reset in watch!");
! mpt->m_softstate |= MPTSAS_SS_RESET_INWATCH;
}
return (rval);
}