Print this page
7813 mpt_sas does not like concurrent HBA resets

*** 935,944 **** --- 935,949 ---- * 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,1340 **** 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); 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 --- 1335,1345 ---- 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_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