scsi: usb: Call scsi_done() directly
Conditional statements are faster than indirect calls. Hence call scsi_done() directly. Link: https://lore.kernel.org/r/20211007204618.2196847-10-bvanassche@acm.org Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
b9d82b7dea
commit
46c97948e9
@ -393,7 +393,6 @@ static int queuecommand_lck(struct scsi_cmnd *srb,
|
||||
}
|
||||
|
||||
/* enqueue the command and wake up the control thread */
|
||||
srb->scsi_done = done;
|
||||
us->srb = srb;
|
||||
complete(&us->cmnd_ready);
|
||||
|
||||
|
@ -256,7 +256,7 @@ static int uas_try_complete(struct scsi_cmnd *cmnd, const char *caller)
|
||||
return -EBUSY;
|
||||
devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL;
|
||||
uas_free_unsubmitted_urbs(cmnd);
|
||||
cmnd->scsi_done(cmnd);
|
||||
scsi_done(cmnd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -653,7 +653,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
|
||||
memcpy(cmnd->sense_buffer, usb_stor_sense_invalidCDB,
|
||||
sizeof(usb_stor_sense_invalidCDB));
|
||||
cmnd->result = SAM_STAT_CHECK_CONDITION;
|
||||
cmnd->scsi_done(cmnd);
|
||||
scsi_done(cmnd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -661,7 +661,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
|
||||
|
||||
if (devinfo->resetting) {
|
||||
set_host_byte(cmnd, DID_ERROR);
|
||||
cmnd->scsi_done(cmnd);
|
||||
scsi_done(cmnd);
|
||||
goto zombie;
|
||||
}
|
||||
|
||||
@ -675,8 +675,6 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
|
||||
return SCSI_MLQUEUE_DEVICE_BUSY;
|
||||
}
|
||||
|
||||
cmnd->scsi_done = done;
|
||||
|
||||
memset(cmdinfo, 0, sizeof(*cmdinfo));
|
||||
cmdinfo->uas_tag = idx + 1; /* uas-tag == usb-stream-id, so 1 based */
|
||||
cmdinfo->state = SUBMIT_STATUS_URB | ALLOC_CMD_URB | SUBMIT_CMD_URB;
|
||||
@ -706,7 +704,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
|
||||
*/
|
||||
if (err == -ENODEV) {
|
||||
set_host_byte(cmnd, DID_ERROR);
|
||||
cmnd->scsi_done(cmnd);
|
||||
scsi_done(cmnd);
|
||||
goto zombie;
|
||||
}
|
||||
if (err) {
|
||||
|
@ -388,7 +388,7 @@ static int usb_stor_control_thread(void * __us)
|
||||
if (srb->result == DID_ABORT << 16) {
|
||||
SkipForAbort:
|
||||
usb_stor_dbg(us, "scsi command aborted\n");
|
||||
srb = NULL; /* Don't call srb->scsi_done() */
|
||||
srb = NULL; /* Don't call scsi_done() */
|
||||
}
|
||||
|
||||
/*
|
||||
@ -417,7 +417,7 @@ SkipForAbort:
|
||||
if (srb) {
|
||||
usb_stor_dbg(us, "scsi cmd done, result=0x%x\n",
|
||||
srb->result);
|
||||
srb->scsi_done(srb);
|
||||
scsi_done(srb);
|
||||
}
|
||||
} /* for (;;) */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user