aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptscsih.c
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2010-06-17 05:10:56 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-07-27 13:02:34 -0400
commitb68bf096d4211bb6490955f86842d8291e8ae218 (patch)
treec512c93f8effded33b4318e3d7e25217a86897a5 /drivers/message/fusion/mptscsih.c
parent51106ab5306b752cd53d40626f78774276bb1368 (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.c2
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;