Print this page
7813 mpt_sas does not like concurrent HBA resets

@@ -600,12 +600,12 @@
         if (config_flags & MPTSAS_REQUEST_POOL_CMD)
                 mptsas_return_to_pool(mpt, cmd);
 
         if (config_flags & MPTSAS_CMD_TIMEOUT) {
                 mpt->m_softstate &= ~MPTSAS_SS_MSG_UNIT_RESET;
-                if ((mptsas_restart_ioc(mpt)) == DDI_FAILURE) {
-                        mptsas_log(mpt, CE_WARN, "mptsas_restart_ioc failed");
+                if ((mptsas_reset_handler(mpt)) == DDI_FAILURE) {
+                        mptsas_log(mpt, CE_WARN, "mptsas_reset_handler failed");
                 }
         }
 
         return (rval);
 }

@@ -1201,12 +1201,12 @@
          */
         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");
+                if (mptsas_reset_handler(mpt)) {
+                        mptsas_log(mpt, CE_WARN, "mptsas_reset_handler failed");
                         rval = FAILED;
                 }
         }
 
         return (rval);

@@ -1404,12 +1404,12 @@
         rvalue = 0;
         (void) cv_reltimedwait(&mpt->m_fw_cv, &mpt->m_mutex,
             drv_usectohz(60 * MICROSEC), TR_CLOCK_TICK);
         if (!(cmd->cmd_flags & CFLAG_FINISHED)) {
                 mpt->m_softstate &= ~MPTSAS_SS_MSG_UNIT_RESET;
-                if ((mptsas_restart_ioc(mpt)) == DDI_FAILURE) {
-                        mptsas_log(mpt, CE_WARN, "mptsas_restart_ioc failed");
+                if ((mptsas_reset_handler(mpt)) == DDI_FAILURE) {
+                        mptsas_log(mpt, CE_WARN, "mptsas_reset_handler failed");
                 }
                 rvalue = -1;
         }
         mptsas_remove_cmd(mpt, cmd);
         mptsas_dma_addr_destroy(&flsh_dma_handle, &flsh_accessp);