]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: qla2xxx: Do not call abort handler function during chip reset
authorSawan Chandak <sawan.chandak@cavium.com>
Wed, 23 Aug 2017 22:05:24 +0000 (15:05 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 25 Aug 2017 02:29:33 +0000 (22:29 -0400)
commita7e8b2ca7857c11cb16e00d03ef553937cbb17fd
tree6cea6861cb31c3a17d72ab19fd067e3ef456bd63
parentad497cfae24a55659430c6ca52412b65b1b478af
scsi: qla2xxx: Do not call abort handler function during chip reset

If there are IO's running and host reset or chip reset is triggered,
IO's can fail due to rport time out. During chip reset recovery process,
driver notifies the transport layer that remote port no longer exist, by
calling fc_remote_port_delete(). When this function is called, it
actually delays deletion by "blocking" it. It sets the remote port state
to "FC_PORTSTATE_BLOCKED" and sets FC_RPORT_DEVLOSS_PENDING.  When
driver tries to abort the command by calling its abort handler function,
abort handler will wait until remote port state is blocked state or wait
for dev_loss_tmo time. Due to this blocking, rport times out and results
in an IO failure. This patch adds a check for any active reset process
before calling abort handler function.

[mkp: typo]

Signed-off-by: Sawan Chandak <sawan.chandak@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_os.c