]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
scsi: qla2xxx: Drop DID_TARGET_FAILURE use
authorMike Christie <michael.christie@oracle.com>
Fri, 12 Aug 2022 01:00:23 +0000 (20:00 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 7 Sep 2022 02:05:58 +0000 (22:05 -0400)
DID_TARGET_FAILURE is internal to the SCSI layer. Drivers must not use it
because:

 1. It's not propagated upwards, so SG IO/passthrough users will not see an
    error and think a command was successful.

 2. There is no handling for it in scsi_decide_disposition() so it
    results in entering SCSI error handling.

This has qla2xxx use DID_NO_CONNECT because it looks like we hit this error
when we can't find a port. It will give us the same hard error behavior and
it seems to match the error where we can't find the endpoint.

Link: https://lore.kernel.org/r/20220812010027.8251-7-michael.christie@oracle.com
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_edif.c

index 400a8b6f39821f0e4c713f0447b899d05fa308e1..00ccc41cef147279e884e5eab3ba5143ac0a1905 100644 (file)
@@ -1551,7 +1551,7 @@ qla24xx_sadb_update(struct bsg_job *bsg_job)
                ql_dbg(ql_dbg_edif, vha, 0x70a3, "Failed to find port= %06x\n",
                    sa_frame.port_id.b24);
                rval = -EINVAL;
-               SET_DID_STATUS(bsg_reply->result, DID_TARGET_FAILURE);
+               SET_DID_STATUS(bsg_reply->result, DID_NO_CONNECT);
                goto done;
        }