diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2011-06-14 10:56:43 +0530 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-06-29 16:15:51 -0500 |
commit | f93213de5c28d4aeda51b3c03daf7e27f6dd2b7a (patch) | |
tree | 424e6e1e95065387f38b8160febf8866c72c549a /drivers/scsi/mpt2sas/mpt2sas_ctl.c | |
parent | a3e1e55e4b5ca4d49618c592b4d10814e21e12a7 (diff) | |
download | linux-f93213de5c28d4aeda51b3c03daf7e27f6dd2b7a.tar.gz linux-f93213de5c28d4aeda51b3c03daf7e27f6dd2b7a.tar.bz2 linux-f93213de5c28d4aeda51b3c03daf7e27f6dd2b7a.zip |
[SCSI] mpt2sas: fix broadcast AEN and task management issue
Properly handling of target reset in multi-initiator environment
Clean up in broadcast change handling:
(1) Need to look at the status of each task management request, and retry
the TM when there are failures.
(2) Need quiescence IO so the driver doesn't take on more IO request while
it's in the middle of sending TM request to firmware
(3) Add support to keep track of how many pending broadcast AEN events
are received while the broadcast handling is active, then loop back at
the end of this routine if there were any events received.
Clean up in mpt2sas_scsih_issue_tm routine:
(1) Make sure proper status is returned when host reset fails
(2) Clean up sanity checks near end of routine, insuring all outstanding
IOs were completed.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_ctl.c')
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_ctl.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_ctl.c b/drivers/scsi/mpt2sas/mpt2sas_ctl.c index d1c3bba7e936..38ed0260959d 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_ctl.c +++ b/drivers/scsi/mpt2sas/mpt2sas_ctl.c @@ -994,7 +994,7 @@ _ctl_do_mpt_command(struct MPT2SAS_ADAPTER *ioc, mpt2sas_scsih_issue_tm(ioc, le16_to_cpu(mpi_request->FunctionDependent1), 0, 0, 0, MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET, 0, 10, - NULL); + 0, TM_MUTEX_ON); ioc->tm_cmds.status = MPT2_CMD_NOT_USED; } else mpt2sas_base_hard_reset_handler(ioc, CAN_SLEEP, |