diff options
author | Bart Van Assche <bvanassche@acm.org> | 2021-10-07 22:28:15 +0200 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2021-10-17 03:28:45 +0200 |
commit | 135223527c810b65c2ab9e64fa81bfd87feb051d (patch) | |
tree | ec98ba17c39689505bb32c9764368a50b4f16748 /drivers/scsi/aha1542.c | |
parent | scsi: aha152x: Call scsi_done() directly (diff) | |
download | linux-135223527c810b65c2ab9e64fa81bfd87feb051d.tar.xz linux-135223527c810b65c2ab9e64fa81bfd87feb051d.zip |
scsi: aha1542: Call scsi_done() directly
Conditional statements are faster than indirect calls. Hence call
scsi_done() directly.
Link: https://lore.kernel.org/r/20211007202923.2174984-21-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/aha1542.c')
-rw-r--r-- | drivers/scsi/aha1542.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c index 584a59522038..8697f4720946 100644 --- a/drivers/scsi/aha1542.c +++ b/drivers/scsi/aha1542.c @@ -281,7 +281,6 @@ static irqreturn_t aha1542_interrupt(int irq, void *dev_id) { struct Scsi_Host *sh = dev_id; struct aha1542_hostdata *aha1542 = shost_priv(sh); - void (*my_done)(struct scsi_cmnd *) = NULL; int errstatus, mbi, mbo, mbistatus; int number_serviced; unsigned long flags; @@ -369,14 +368,13 @@ static irqreturn_t aha1542_interrupt(int irq, void *dev_id) tmp_cmd = aha1542->int_cmds[mbo]; - if (!tmp_cmd || !tmp_cmd->scsi_done) { + if (!tmp_cmd) { spin_unlock_irqrestore(sh->host_lock, flags); shost_printk(KERN_WARNING, sh, "Unexpected interrupt\n"); shost_printk(KERN_WARNING, sh, "tarstat=%x, hastat=%x idlun=%x ccb#=%d\n", ccb[mbo].tarstat, ccb[mbo].hastat, ccb[mbo].idlun, mbo); return IRQ_HANDLED; } - my_done = tmp_cmd->scsi_done; aha1542_free_cmd(tmp_cmd); /* * Fetch the sense data, and tuck it away, in the required slot. The @@ -410,7 +408,7 @@ static irqreturn_t aha1542_interrupt(int irq, void *dev_id) aha1542->int_cmds[mbo] = NULL; /* This effectively frees up the mailbox slot, as * far as queuecommand is concerned */ - my_done(tmp_cmd); + scsi_done(tmp_cmd); number_serviced++; }; } @@ -431,7 +429,7 @@ static int aha1542_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *cmd) if (*cmd->cmnd == REQUEST_SENSE) { /* Don't do the command - we have the sense data already */ cmd->result = 0; - cmd->scsi_done(cmd); + scsi_done(cmd); return 0; } #ifdef DEBUG @@ -488,7 +486,7 @@ static int aha1542_queuecommand(struct Scsi_Host *sh, struct scsi_cmnd *cmd) aha1542->aha1542_last_mbo_used = mbo; #ifdef DEBUG - shost_printk(KERN_DEBUG, sh, "Sending command (%d %p)...", mbo, cmd->scsi_done); + shost_printk(KERN_DEBUG, sh, "Sending command (%d)...", mbo); #endif /* This gets trashed for some reason */ |