Conditional statements are faster than indirect calls. Hence call scsi_done() directly. Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> --- drivers/scsi/pcmcia/nsp_cs.c | 4 +--- drivers/scsi/pcmcia/sym53c500_cs.c | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c index 7c0f931e55e8..0271d534133a 100644 --- a/drivers/scsi/pcmcia/nsp_cs.c +++ b/drivers/scsi/pcmcia/nsp_cs.c @@ -178,7 +178,7 @@ static void nsp_scsi_done(struct scsi_cmnd *SCpnt) data->CurrentSC = NULL; - SCpnt->scsi_done(SCpnt); + scsi_done(SCpnt); } static int nsp_queuecommand_lck(struct scsi_cmnd *SCpnt, @@ -197,8 +197,6 @@ static int nsp_queuecommand_lck(struct scsi_cmnd *SCpnt, scsi_bufflen(SCpnt), scsi_sg_count(SCpnt)); //nsp_dbg(NSP_DEBUG_QUEUECOMMAND, "before CurrentSC=0x%p", data->CurrentSC); - SCpnt->scsi_done = done; - if (data->CurrentSC != NULL) { nsp_msg(KERN_DEBUG, "CurrentSC!=NULL this can't be happen"); SCpnt->result = DID_BAD_TARGET << 16; diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c index a366ff1a3959..d2adda815d7b 100644 --- a/drivers/scsi/pcmcia/sym53c500_cs.c +++ b/drivers/scsi/pcmcia/sym53c500_cs.c @@ -492,7 +492,7 @@ SYM53C500_intr(int irq, void *dev_id) idle_out: curSC->SCp.phase = idle; - curSC->scsi_done(curSC); + scsi_done(curSC); goto out; } @@ -556,7 +556,6 @@ SYM53C500_queue_lck(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *)) VDEB(printk("\n")); data->current_SC = SCpnt; - data->current_SC->scsi_done = done; data->current_SC->SCp.phase = command_ph; data->current_SC->SCp.Status = 0; data->current_SC->SCp.Message = 0;