[SCSI] qla2xxx: Handle outstanding mbx cmds on hung f/w scenarios.
authorSantosh Vernekar <santosh.vernekar@qlogic.com>
Fri, 28 May 2010 22:08:25 +0000 (15:08 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Tue, 27 Jul 2010 17:01:25 +0000 (12:01 -0500)
commitcdbb0a4f31c486e4f6fb6e673a892f4f5205f91c
treeef386912ef74cb07ae79b522db0a31fc7ce14b03
parent3f3b6f98cb33043cba04f45a2f2c43b8303c120c
[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>
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_mbx.c
drivers/scsi/qla2xxx/qla_nx.c