scsi: xen-scsiback: Use DID_ERROR instead of DRIVER_ERROR
authorHannes Reinecke <hare@suse.de>
Tue, 27 Apr 2021 08:30:18 +0000 (10:30 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 1 Jun 2021 02:48:22 +0000 (22:48 -0400)
DRIVER_ERROR was supposed to signal an error generated by the driver, which
xen-scsiback arguably isn't. Also the driver bytes don't have a detailed
error recovery, so we should rather return DID_ERROR instead of
DRIVER_ERROR.

Link: https://lore.kernel.org/r/20210427083046.31620-13-hare@suse.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/xen/xen-scsiback.c

index 3ec038cd43323dc310c2cc4caadfacf5fbd0cf5d..b7f0ff80efe260af5c9b3631ce6aa2862e2d5077 100644 (file)
@@ -719,10 +719,10 @@ static int scsiback_do_cmd_fn(struct vscsibk_info *info,
                                result = DID_NO_CONNECT;
                                break;
                        default:
-                               result = DRIVER_ERROR;
+                               result = DID_ERROR;
                                break;
                        }
-                       scsiback_send_response(info, NULL, result << 24, 0,
+                       scsiback_send_response(info, NULL, result << 16, 0,
                                               ring_req.rqid);
                        return 1;
                }
@@ -732,7 +732,7 @@ static int scsiback_do_cmd_fn(struct vscsibk_info *info,
                        if (scsiback_gnttab_data_map(&ring_req, pending_req)) {
                                scsiback_fast_flush_area(pending_req);
                                scsiback_do_resp_with_sense(NULL,
-                                               DRIVER_ERROR << 24, 0, pending_req);
+                                               DID_ERROR << 16, 0, pending_req);
                                transport_generic_free_cmd(&pending_req->se_cmd, 0);
                        } else {
                                scsiback_cmd_exec(pending_req);
@@ -747,7 +747,7 @@ static int scsiback_do_cmd_fn(struct vscsibk_info *info,
                        break;
                default:
                        pr_err_ratelimited("invalid request\n");
-                       scsiback_do_resp_with_sense(NULL, DRIVER_ERROR << 24, 0,
+                       scsiback_do_resp_with_sense(NULL, DID_ERROR << 16, 0,
                                                    pending_req);
                        transport_generic_free_cmd(&pending_req->se_cmd, 0);
                        break;