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

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

index 43a950185e245925bcbc6078c8bc2634cbcb3570..5f17666f3e1def9c1a05abe5c27f7a66cfc50987 100644 (file)
@@ -342,7 +342,7 @@ snic_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *sc)
                SNIC_HOST_ERR(shost, "Tgt %p id %d Not Ready.\n", tgt, tgt->id);
                atomic64_inc(&snic->s_stats.misc.tgt_not_rdy);
                sc->result = ret;
-               sc->scsi_done(sc);
+               scsi_done(sc);
 
                return 0;
        }
@@ -676,8 +676,7 @@ snic_icmnd_cmpl_handler(struct snic *snic, struct snic_fw_req *fwreq)
                 SNIC_TRC_CMD(sc), SNIC_TRC_CMD_STATE_FLAGS(sc));
 
 
-       if (sc->scsi_done)
-               sc->scsi_done(sc);
+       scsi_done(sc);
 
        snic_stats_update_io_cmpl(&snic->s_stats);
 } /* end of snic_icmnd_cmpl_handler */
@@ -855,14 +854,12 @@ snic_process_itmf_cmpl(struct snic *snic,
 
                snic_release_req_buf(snic, rqi, sc);
 
-               if (sc->scsi_done) {
-                       SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc,
-                                jiffies_to_msecs(jiffies - start_time),
-                                (ulong) fwreq, SNIC_TRC_CMD(sc),
-                                SNIC_TRC_CMD_STATE_FLAGS(sc));
+               SNIC_TRC(snic->shost->host_no, cmnd_id, (ulong) sc,
+                        jiffies_to_msecs(jiffies - start_time),
+                        (ulong) fwreq, SNIC_TRC_CMD(sc),
+                        SNIC_TRC_CMD_STATE_FLAGS(sc));
 
-                       sc->scsi_done(sc);
-               }
+               scsi_done(sc);
 
                break;
 
@@ -1475,7 +1472,7 @@ snic_abort_finish(struct snic *snic, struct scsi_cmnd *sc)
                 * Call scsi_done to complete the IO.
                 */
                sc->result = (DID_ERROR << 16);
-               sc->scsi_done(sc);
+               scsi_done(sc);
                break;
 
        default:
@@ -1855,7 +1852,7 @@ snic_dr_clean_single_req(struct snic *snic,
        snic_release_req_buf(snic, rqi, sc);
 
        sc->result = (DID_ERROR << 16);
-       sc->scsi_done(sc);
+       scsi_done(sc);
 
        ret = 0;
 
@@ -2500,14 +2497,12 @@ cleanup:
                /* Update IO stats */
                snic_stats_update_io_cmpl(&snic->s_stats);
 
-               if (sc->scsi_done) {
-                       SNIC_TRC(snic->shost->host_no, tag, (ulong) sc,
-                                jiffies_to_msecs(jiffies - st_time), 0,
-                                SNIC_TRC_CMD(sc),
-                                SNIC_TRC_CMD_STATE_FLAGS(sc));
+               SNIC_TRC(snic->shost->host_no, tag, (ulong) sc,
+                        jiffies_to_msecs(jiffies - st_time), 0,
+                        SNIC_TRC_CMD(sc),
+                        SNIC_TRC_CMD_STATE_FLAGS(sc));
 
-                       sc->scsi_done(sc);
-               }
+               scsi_done(sc);
        }
 } /* end of snic_scsi_cleanup */