Conditional statements are faster than indirect calls. Hence call scsi_done() directly. Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> --- drivers/staging/rts5208/rtsx.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rts5208/rtsx.c b/drivers/staging/rts5208/rtsx.c index 898add4d1fc8..f1136f6bcee2 100644 --- a/drivers/staging/rts5208/rtsx.c +++ b/drivers/staging/rts5208/rtsx.c @@ -140,7 +140,6 @@ static int queuecommand_lck(struct scsi_cmnd *srb, } /* enqueue the command and wake up the control thread */ - srb->scsi_done = done; chip->srb = srb; complete(&dev->cmnd_ready); @@ -423,7 +422,7 @@ static int rtsx_control_thread(void *__dev) /* indicate that the command is done */ else if (chip->srb->result != DID_ABORT << 16) { - chip->srb->scsi_done(chip->srb); + scsi_done(chip->srb); } else { skip_for_abort: dev_err(&dev->pci->dev, "scsi command aborted\n"); @@ -635,7 +634,7 @@ static void quiesce_and_remove_host(struct rtsx_dev *dev) if (chip->srb) { chip->srb->result = DID_NO_CONNECT << 16; scsi_lock(host); - chip->srb->scsi_done(dev->chip->srb); + scsi_done(dev->chip->srb); chip->srb = NULL; scsi_unlock(host); }