diff options
author | Santosh Vernekar <santosh.vernekar@qlogic.com> | 2010-05-28 15:08:25 -0700 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 12:01:25 -0500 |
commit | cdbb0a4f31c486e4f6fb6e673a892f4f5205f91c (patch) | |
tree | ef386912ef74cb07ae79b522db0a31fc7ce14b03 /drivers/scsi/qla2xxx/qla_def.h | |
parent | 3f3b6f98cb33043cba04f45a2f2c43b8303c120c (diff) | |
download | blackbird-op-linux-cdbb0a4f31c486e4f6fb6e673a892f4f5205f91c.tar.gz blackbird-op-linux-cdbb0a4f31c486e4f6fb6e673a892f4f5205f91c.zip |
[SCSI] qla2xxx: Handle outstanding mbx cmds on hung f/w scenarios.
Outstanding mailbox commands, have no way to recover on f/w hung, and we
timeout on waiting for mbx response. This in turn affects the recovery process
as follows:
- We might already be in dpc while waiting for mbx to complete, so recovery for
that pci function will never get invoked. Reset Timeout (10 sec) is far less
than mbx timeout (30 sec).
- Other mbx cmds will get stuck due to serial mbx access.
Solution is to identify fw-hung scenario and handle outstanding mbx commands to
have an early-exit instead of waiting for response.
Other mbx commands waiting for access will also do an early-exit if fw-hung is
still applicable.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_def.h')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index f0e792a82dde..2bb187e23db0 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -2413,6 +2413,7 @@ struct qla_hw_data { uint32_t cpu_affinity_enabled :1; uint32_t disable_msix_handshake :1; uint32_t fcp_prio_enabled :1; + uint32_t fw_hung :1; } flags; /* This spinlock is used to protect "io transactions", you must |