Commit 46c97948 authored by Bart Van Assche's avatar Bart Van Assche Committed by Martin K. Petersen

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.orgSigned-off-by: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent b9d82b7d
...@@ -393,7 +393,6 @@ static int queuecommand_lck(struct scsi_cmnd *srb, ...@@ -393,7 +393,6 @@ static int queuecommand_lck(struct scsi_cmnd *srb,
} }
/* enqueue the command and wake up the control thread */ /* enqueue the command and wake up the control thread */
srb->scsi_done = done;
us->srb = srb; us->srb = srb;
complete(&us->cmnd_ready); complete(&us->cmnd_ready);
......
...@@ -256,7 +256,7 @@ static int uas_try_complete(struct scsi_cmnd *cmnd, const char *caller) ...@@ -256,7 +256,7 @@ static int uas_try_complete(struct scsi_cmnd *cmnd, const char *caller)
return -EBUSY; return -EBUSY;
devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL; devinfo->cmnd[cmdinfo->uas_tag - 1] = NULL;
uas_free_unsubmitted_urbs(cmnd); uas_free_unsubmitted_urbs(cmnd);
cmnd->scsi_done(cmnd); scsi_done(cmnd);
return 0; return 0;
} }
...@@ -653,7 +653,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd, ...@@ -653,7 +653,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
memcpy(cmnd->sense_buffer, usb_stor_sense_invalidCDB, memcpy(cmnd->sense_buffer, usb_stor_sense_invalidCDB,
sizeof(usb_stor_sense_invalidCDB)); sizeof(usb_stor_sense_invalidCDB));
cmnd->result = SAM_STAT_CHECK_CONDITION; cmnd->result = SAM_STAT_CHECK_CONDITION;
cmnd->scsi_done(cmnd); scsi_done(cmnd);
return 0; return 0;
} }
...@@ -661,7 +661,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd, ...@@ -661,7 +661,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
if (devinfo->resetting) { if (devinfo->resetting) {
set_host_byte(cmnd, DID_ERROR); set_host_byte(cmnd, DID_ERROR);
cmnd->scsi_done(cmnd); scsi_done(cmnd);
goto zombie; goto zombie;
} }
...@@ -675,8 +675,6 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd, ...@@ -675,8 +675,6 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
return SCSI_MLQUEUE_DEVICE_BUSY; return SCSI_MLQUEUE_DEVICE_BUSY;
} }
cmnd->scsi_done = done;
memset(cmdinfo, 0, sizeof(*cmdinfo)); memset(cmdinfo, 0, sizeof(*cmdinfo));
cmdinfo->uas_tag = idx + 1; /* uas-tag == usb-stream-id, so 1 based */ cmdinfo->uas_tag = idx + 1; /* uas-tag == usb-stream-id, so 1 based */
cmdinfo->state = SUBMIT_STATUS_URB | ALLOC_CMD_URB | SUBMIT_CMD_URB; cmdinfo->state = SUBMIT_STATUS_URB | ALLOC_CMD_URB | SUBMIT_CMD_URB;
...@@ -706,7 +704,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd, ...@@ -706,7 +704,7 @@ static int uas_queuecommand_lck(struct scsi_cmnd *cmnd,
*/ */
if (err == -ENODEV) { if (err == -ENODEV) {
set_host_byte(cmnd, DID_ERROR); set_host_byte(cmnd, DID_ERROR);
cmnd->scsi_done(cmnd); scsi_done(cmnd);
goto zombie; goto zombie;
} }
if (err) { if (err) {
......
...@@ -388,7 +388,7 @@ static int usb_stor_control_thread(void * __us) ...@@ -388,7 +388,7 @@ static int usb_stor_control_thread(void * __us)
if (srb->result == DID_ABORT << 16) { if (srb->result == DID_ABORT << 16) {
SkipForAbort: SkipForAbort:
usb_stor_dbg(us, "scsi command aborted\n"); 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 @@ static int usb_stor_control_thread(void * __us) ...@@ -417,7 +417,7 @@ static int usb_stor_control_thread(void * __us)
if (srb) { if (srb) {
usb_stor_dbg(us, "scsi cmd done, result=0x%x\n", usb_stor_dbg(us, "scsi cmd done, result=0x%x\n",
srb->result); srb->result);
srb->scsi_done(srb); scsi_done(srb);
} }
} /* for (;;) */ } /* for (;;) */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment