scsi: qla1280: Separate out host reset function from qla1280_error_action()
authorHannes Reinecke <hare@suse.de>
Mon, 2 Oct 2023 15:43:25 +0000 (17:43 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 13 Oct 2023 18:23:15 +0000 (14:23 -0400)
There's not much in common between host reset and all other error handlers,
so use a separate function here.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20231002154328.43718-16-hare@suse.de
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla1280.c

index 6e5e89aaa283ba85ea676e9913380d2cd31392bf..27bce80262c20c26f4cf7f29f40e2489fd47ae0b 100644 (file)
@@ -716,7 +716,6 @@ enum action {
        ABORT_COMMAND,
        DEVICE_RESET,
        BUS_RESET,
-       ADAPTER_RESET,
 };
 
 
@@ -898,22 +897,9 @@ qla1280_error_action(struct scsi_cmnd *cmd, enum action action)
                }
                break;
 
-       case ADAPTER_RESET:
        default:
-               if (qla1280_verbose) {
-                       printk(KERN_INFO
-                              "scsi(%ld): Issued ADAPTER RESET\n",
-                              ha->host_no);
-                       printk(KERN_INFO "scsi(%ld): I/O processing will "
-                              "continue automatically\n", ha->host_no);
-               }
-               ha->flags.reset_active = 1;
-
-               if (qla1280_abort_isp(ha) != 0) {       /* it's dead */
-                       result = FAILED;
-               }
-
-               ha->flags.reset_active = 0;
+               dprintk(1, "RESET invalid action %d\n", action);
+               return FAILED;
        }
 
        /*
@@ -1011,11 +997,27 @@ qla1280_eh_bus_reset(struct scsi_cmnd *cmd)
 static int
 qla1280_eh_adapter_reset(struct scsi_cmnd *cmd)
 {
-       int rc;
+       int rc = SUCCESS;
+       struct Scsi_Host *shost = cmd->device->host;
+       struct scsi_qla_host *ha = (struct scsi_qla_host *)shost->hostdata;
 
-       spin_lock_irq(cmd->device->host->host_lock);
-       rc = qla1280_error_action(cmd, ADAPTER_RESET);
-       spin_unlock_irq(cmd->device->host->host_lock);
+       spin_lock_irq(shost->host_lock);
+       if (qla1280_verbose) {
+               printk(KERN_INFO
+                      "scsi(%ld): Issued ADAPTER RESET\n",
+                      ha->host_no);
+               printk(KERN_INFO "scsi(%ld): I/O processing will "
+                      "continue automatically\n", ha->host_no);
+       }
+       ha->flags.reset_active = 1;
+
+       if (qla1280_abort_isp(ha) != 0) {       /* it's dead */
+               rc = FAILED;
+       }
+
+       ha->flags.reset_active = 0;
+
+       spin_unlock_irq(shost->host_lock);
 
        return rc;
 }