scsi: dpt_i2o: Call scsi_done() directly
authorBart Van Assche <bvanassche@acm.org>
Thu, 7 Oct 2021 20:28:24 +0000 (13:28 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sun, 17 Oct 2021 01:28:46 +0000 (21:28 -0400)
Conditional statements are faster than indirect calls. Hence call
scsi_done() directly.

Link: https://lore.kernel.org/r/20211007202923.2174984-30-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/dpt_i2o.c

index 7af96d1..1f00afc 100644 (file)
@@ -421,7 +421,6 @@ static int adpt_queue_lck(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd
        adpt_hba* pHba = NULL;
        struct adpt_device* pDev = NULL;        /* dpt per device information */
 
-       cmd->scsi_done = done;
        /*
         * SCSI REQUEST_SENSE commands will be executed automatically by the 
         * Host Adapter for any errors, so they should not be executed 
@@ -431,7 +430,7 @@ static int adpt_queue_lck(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd
 
        if ((cmd->cmnd[0] == REQUEST_SENSE) && (cmd->sense_buffer[0] != 0)) {
                cmd->result = (DID_OK << 16);
-               cmd->scsi_done(cmd);
+               scsi_done(cmd);
                return 0;
        }
 
@@ -456,7 +455,7 @@ static int adpt_queue_lck(struct scsi_cmnd * cmd, void (*done) (struct scsi_cmnd
                        // TODO: if any luns are at this bus, scsi id then fake a TEST_UNIT_READY and INQUIRY response 
                        // with type 7F (for all luns less than the max for this bus,id) so the lun scan will continue.
                        cmd->result = (DID_NO_CONNECT << 16);
-                       cmd->scsi_done(cmd);
+                       scsi_done(cmd);
                        return 0;
                }
                cmd->device->hostdata = pDev;
@@ -2227,7 +2226,7 @@ static s32 adpt_scsi_to_i2o(adpt_hba* pHba, struct scsi_cmnd* cmd, struct adpt_d
                        printk(KERN_WARNING"%s: scsi opcode 0x%x not supported.\n",
                             pHba->name, cmd->cmnd[0]);
                        cmd->result = (DID_ERROR <<16);
-                       cmd->scsi_done(cmd);
+                       scsi_done(cmd);
                        return  0;
                }
        }
@@ -2451,9 +2450,7 @@ static void adpt_i2o_scsi_complete(void __iomem *reply, struct scsi_cmnd *cmd)
 
        cmd->result |= (dev_status);
 
-       if(cmd->scsi_done != NULL){
-               cmd->scsi_done(cmd);
-       } 
+       scsi_done(cmd);
 }