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>
This commit is contained in:
committed by
Martin K. Petersen
parent
079a3a3b9d
commit
0691094ff3
@@ -391,6 +391,7 @@ static void qla_init_base_qpair(struct scsi_qla_host *vha, struct req_que *req,
|
||||
struct qla_hw_data *ha = vha->hw;
|
||||
rsp->qpair = ha->base_qpair;
|
||||
rsp->req = req;
|
||||
ha->base_qpair->hw = ha;
|
||||
ha->base_qpair->req = req;
|
||||
ha->base_qpair->rsp = rsp;
|
||||
ha->base_qpair->vha = vha;
|
||||
|
||||
Reference in New Issue
Block a user