Print this page
7813 mpt_sas does not like concurrent HBA resets

@@ -935,10 +935,15 @@
          * Is HBA processing a diag reset?
          */
         uint8_t                 m_in_reset;
 
         /*
+         * Task management protection
+         */
+        kmutex_t                m_taskmgmt_mutex;
+
+        /*
          * per instance cmd data structures for task management cmds
          */
         m_event_struct_t        m_event_task_mgmt;      /* must be last */
                                                         /* ... scsi_pkt_size */
 } mptsas_t;

@@ -1330,11 +1335,11 @@
     uint16_t dev_handle, int lun, uint8_t *reply, uint32_t reply_size,
     int mode);
 int mptsas_send_event_ack(mptsas_t *mpt, uint32_t event, uint32_t eventcntx);
 void mptsas_send_pending_event_ack(mptsas_t *mpt);
 void mptsas_set_throttle(struct mptsas *mpt, mptsas_target_t *ptgt, int what);
-int mptsas_restart_ioc(mptsas_t *mpt);
+int mptsas_reset_handler(mptsas_t *mpt);
 void mptsas_update_driver_data(struct mptsas *mpt);
 uint64_t mptsas_get_sata_guid(mptsas_t *mpt, mptsas_target_t *ptgt, int lun);
 
 /*
  * init functions