diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2010-06-17 05:10:56 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 13:02:34 -0400 |
commit | b68bf096d4211bb6490955f86842d8291e8ae218 (patch) | |
tree | c512c93f8effded33b4318e3d7e25217a86897a5 /drivers/message/fusion/mptscsih.c | |
parent | 51106ab5306b752cd53d40626f78774276bb1368 (diff) |
[SCSI] mptfusion: schedule_target_reset from all Reset context
Issue:
target reset will be queued to driver's internal queue to get schedule
later. When driver add target into internal target_reset queue we will block IOs
on those target using scsi midlayer API. Now due to some cause driver is not
executing those target_reset list and it is always in block state.
Changes:
now we are clearing target_reset queue from all other Callback context
instead of only DeviceReset context.Now wherever driver is clearing
taskmgmt_in_progress flag it is considering target_reset queue cleanup
also.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/message/fusion/mptscsih.c')
-rw-r--r-- | drivers/message/fusion/mptscsih.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 5a3c10e72e40..c5c8fb811f54 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -2134,6 +2134,8 @@ mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, | |||
2134 | mpt_clear_taskmgmt_in_progress_flag(ioc); | 2134 | mpt_clear_taskmgmt_in_progress_flag(ioc); |
2135 | ioc->taskmgmt_cmds.status &= ~MPT_MGMT_STATUS_PENDING; | 2135 | ioc->taskmgmt_cmds.status &= ~MPT_MGMT_STATUS_PENDING; |
2136 | complete(&ioc->taskmgmt_cmds.done); | 2136 | complete(&ioc->taskmgmt_cmds.done); |
2137 | if (ioc->bus_type == SAS) | ||
2138 | ioc->schedule_target_reset(ioc); | ||
2137 | return 1; | 2139 | return 1; |
2138 | } | 2140 | } |
2139 | return 0; | 2141 | return 0; |