diff options
author | Eric Moore <eric.moore@lsi.com> | 2007-01-29 11:46:21 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-02-02 22:02:30 -0500 |
commit | df9e062ad994c4db683377b108c0dbed4690e4b0 (patch) | |
tree | 6953073b5fc45bc13b27847f0903f27dfe57f9bb /drivers/message/fusion/mptbase.h | |
parent | b506ade9f3c309ac2ce3ffc4039f731097506038 (diff) |
[SCSI] fusion - serialize target resets in mptsas.c
Fusion firmware requires target reset following hotplug removal event,
with purpose to flush target outstanding request in fw. Current implementation
does the target resets from delayed work tasks, that in heavy load
conditions, take too long to be invoked, resulting in command time outs
This patch will issue target reset immediately from ISR context, and will
queue remaining target resets to be issued after the previous one completes.
The delayed work tasks are spawned during the target reset completion.
Signed-off-by: Eric Moore <Eric.Moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion/mptbase.h')
-rw-r--r-- | drivers/message/fusion/mptbase.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index 07830d28e58d..7176944e201c 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h | |||
@@ -994,6 +994,7 @@ typedef struct _MPT_SCSI_HOST { | |||
994 | int scandv_wait_done; | 994 | int scandv_wait_done; |
995 | long last_queue_full; | 995 | long last_queue_full; |
996 | u16 tm_iocstatus; | 996 | u16 tm_iocstatus; |
997 | struct list_head target_reset_list; | ||
997 | } MPT_SCSI_HOST; | 998 | } MPT_SCSI_HOST; |
998 | 999 | ||
999 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 1000 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |