Conditional statements are faster than indirect calls. Hence call scsi_done() directly. Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> --- drivers/scsi/bfa/bfad_im.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/bfa/bfad_im.c b/drivers/scsi/bfa/bfad_im.c index 6b5841b1c06e..e12ae60efd33 100644 --- a/drivers/scsi/bfa/bfad_im.c +++ b/drivers/scsi/bfa/bfad_im.c @@ -96,7 +96,7 @@ bfa_cb_ioim_done(void *drv, struct bfad_ioim_s *dio, } } - cmnd->scsi_done(cmnd); + scsi_done(cmnd); } void @@ -124,7 +124,7 @@ bfa_cb_ioim_good_comp(void *drv, struct bfad_ioim_s *dio) } } - cmnd->scsi_done(cmnd); + scsi_done(cmnd); } void @@ -226,7 +226,7 @@ bfad_im_abort_handler(struct scsi_cmnd *cmnd) timeout *= 2; } - cmnd->scsi_done(cmnd); + scsi_done(cmnd); bfa_trc(bfad, hal_io->iotag); BFA_LOG(KERN_INFO, bfad, bfa_log_level, "scsi%d: complete abort 0x%p iotag 0x%x\n", @@ -1233,8 +1233,6 @@ bfad_im_queuecommand_lck(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd if (sg_cnt < 0) return SCSI_MLQUEUE_HOST_BUSY; - cmnd->scsi_done = done; - spin_lock_irqsave(&bfad->bfad_lock, flags); if (!(bfad->bfad_flags & BFAD_HAL_START_DONE)) { printk(KERN_WARNING