scsi: cxlflash: Drop DID_ALLOC_FAILURE use
authorMike Christie <michael.christie@oracle.com>
Fri, 12 Aug 2022 01:00:24 +0000 (20:00 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 7 Sep 2022 02:05:59 +0000 (22:05 -0400)
DID_ALLOC_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.

By the code comment, it looks like the driver wanted a retryable error
code, so this has it use DID_ERROR.

Link: https://lore.kernel.org/r/20220812010027.8251-8-michael.christie@oracle.com
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/cxlflash/main.c

index e7be95e..cd1324e 100644 (file)
@@ -132,7 +132,7 @@ static void process_cmd_err(struct afu_cmd *cmd, struct scsi_cmnd *scp)
                        break;
                case SISL_AFU_RC_OUT_OF_DATA_BUFS:
                        /* Retry */
-                       scp->result = (DID_ALLOC_FAILURE << 16);
+                       scp->result = (DID_ERROR << 16);
                        break;
                default:
                        scp->result = (DID_ERROR << 16);