OSDN Git Service

scsi: qla2xxx: Add logic to detect ABTS hang and response completion
authorQuinn Tran <quinn.tran@cavium.com>
Tue, 4 Sep 2018 21:19:12 +0000 (14:19 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 12 Sep 2018 00:28:08 +0000 (20:28 -0400)
commit0691094ff3f2cfa357b9de9030b65eddc4dab29d
treeb4c749cfa433a3cf7d330c40cbd174098c76669c
parent079a3a3b9dff1c56d6a72005a999de915a67930b
scsi: qla2xxx: Add logic to detect ABTS hang and response completion

ABTS error completion can trigger an exchange cleanup from the driver and
another ABTS response will be generated.  This retry of ABTS response can
cause loop between driver trying to send ABTS and firmware returning error.

This patch fixes this issue by adding logic to check for unresolved exchanges
and clean up before ABTS is retried.  This patch also addes the fix to use the
same qpair as the ABTS completion for the terminatation of exchange as well as
retry of ABTS response.

Signed-off-by: Quinn Tran <quinn.tran@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_def.h
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/qla2xxx/qla_target.c