Conditional statements are faster than indirect calls. Hence call scsi_done() directly. Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> --- drivers/scsi/vmw_pvscsi.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c index ce1ba1b93629..7bfa023d0feb 100644 --- a/drivers/scsi/vmw_pvscsi.c +++ b/drivers/scsi/vmw_pvscsi.c @@ -643,7 +643,7 @@ static void pvscsi_complete_request(struct pvscsi_adapter *adapter, "cmd=%p %x ctx=%p result=0x%x status=0x%x,%x\n", cmd, cmd->cmnd[0], ctx, cmd->result, btstat, sdstat); - cmd->scsi_done(cmd); + scsi_done(cmd); } /* @@ -786,7 +786,6 @@ static int pvscsi_queue_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd return SCSI_MLQUEUE_HOST_BUSY; } - cmd->scsi_done = done; op = cmd->cmnd[0]; dev_dbg(&cmd->device->sdev_gendev, @@ -860,7 +859,7 @@ static int pvscsi_abort(struct scsi_cmnd *cmd) * Successfully aborted the command. */ cmd->result = (DID_ABORT << 16); - cmd->scsi_done(cmd); + scsi_done(cmd); out: spin_unlock_irqrestore(&adapter->hw_lock, flags); @@ -887,7 +886,7 @@ static void pvscsi_reset_all(struct pvscsi_adapter *adapter) pvscsi_patch_sense(cmd); pvscsi_release_context(adapter, ctx); cmd->result = (DID_RESET << 16); - cmd->scsi_done(cmd); + scsi_done(cmd); } } }