summaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptbase.h
diff options
context:
space:
mode:
authorMichael Reed2006-05-24 22:07:40 +0200
committerJames Bottomley2006-06-10 23:00:03 +0200
commit419835e285c3e39cd62c8c8426da0aebea9cd89f (patch)
treee550176245f09598ccf7ffff915524ff07d75c88 /drivers/message/fusion/mptbase.h
parent[SCSI] mptfc: set fibre channel fw target missing timers to one second (diff)
downloadkernel-qcow2-linux-419835e285c3e39cd62c8c8426da0aebea9cd89f.tar.gz
kernel-qcow2-linux-419835e285c3e39cd62c8c8426da0aebea9cd89f.tar.xz
kernel-qcow2-linux-419835e285c3e39cd62c8c8426da0aebea9cd89f.zip
[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;