summaryrefslogtreecommitdiff
path: root/drivers/message/fusion/mptbase.h
diff options
context:
space:
mode:
authorMichael Reed <mdr@sgi.com>2006-05-25 00:07:40 +0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-06-11 01:00:03 +0400
commit419835e285c3e39cd62c8c8426da0aebea9cd89f (patch)
treee550176245f09598ccf7ffff915524ff07d75c88 /drivers/message/fusion/mptbase.h
parentca2f938efe71ca48cbc689db4df8d4f04b5d8f07 (diff)
downloadlinux-419835e285c3e39cd62c8c8426da0aebea9cd89f.tar.xz
[SCSI] mptfc: fix fibre channel infinite request/response loop
While doing board reset testing I was able to put the system in an infinite request/response loop between the scsi layer and mptscsih_qcmd() by aborting the reset. This patch installs a "SETUP RESET" handler which calls fc_remote_port_delete() for all registered rports. This blocks the target which prevents the loop. Additionally, should the reset fail to complete, the transport will now terminate i/o to the target. Signed-off-by: Michael Reed <mdr@sgi.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.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index 29f6b986946f..6d36ff5ee721 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -635,6 +635,7 @@ typedef struct _MPT_ADAPTER
int num_ports;
struct work_struct mptscsih_persistTask;
+ struct work_struct fc_setup_reset_work;
struct list_head fc_rports;
spinlock_t fc_rescan_work_lock;
int fc_rescan_work_count;