Skip to content

Commit 2702812

Browse files
bvanasschemartinkpetersen
authored andcommitted
scsi: ufs: core: Simplify ufshcd_execute_start_stop()
Use scsi_execute_cmd() instead of open-coding it. Link: https://lore.kernel.org/r/20230210193258.4004923-4-bvanassche@acm.org Cc: Mike Christie <michael.christie@oracle.com> Cc: John Garry <john.g.garry@oracle.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: John Garry <john.g.garry@oracle.com> Reviewed-by: Asutosh Das <quic_asutoshd@quicinc.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent 93bc4a5 commit 2702812

1 file changed

Lines changed: 8 additions & 27 deletions

File tree

drivers/ufs/core/ufshcd.c

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9134,34 +9134,15 @@ static int ufshcd_execute_start_stop(struct scsi_device *sdev,
91349134
enum ufs_dev_pwr_mode pwr_mode,
91359135
struct scsi_sense_hdr *sshdr)
91369136
{
9137-
unsigned char cdb[6] = { START_STOP, 0, 0, 0, pwr_mode << 4, 0 };
9138-
struct request *req;
9139-
struct scsi_cmnd *scmd;
9140-
int ret;
9141-
9142-
req = scsi_alloc_request(sdev->request_queue, REQ_OP_DRV_IN,
9143-
BLK_MQ_REQ_PM);
9144-
if (IS_ERR(req))
9145-
return PTR_ERR(req);
9146-
9147-
scmd = blk_mq_rq_to_pdu(req);
9148-
scmd->cmd_len = COMMAND_SIZE(cdb[0]);
9149-
memcpy(scmd->cmnd, cdb, scmd->cmd_len);
9150-
scmd->allowed = 0/*retries*/;
9151-
scmd->flags |= SCMD_FAIL_IF_RECOVERING;
9152-
req->timeout = 1 * HZ;
9153-
req->rq_flags |= RQF_QUIET;
9154-
9155-
blk_execute_rq(req, /*at_head=*/true);
9156-
9157-
if (sshdr)
9158-
scsi_normalize_sense(scmd->sense_buffer, scmd->sense_len,
9159-
sshdr);
9160-
ret = scmd->result;
9161-
9162-
blk_mq_free_request(req);
9137+
const unsigned char cdb[6] = { START_STOP, 0, 0, 0, pwr_mode << 4, 0 };
9138+
const struct scsi_exec_args args = {
9139+
.sshdr = sshdr,
9140+
.req_flags = BLK_MQ_REQ_PM,
9141+
.scmd_flags = SCMD_FAIL_IF_RECOVERING,
9142+
};
91639143

9164-
return ret;
9144+
return scsi_execute_cmd(sdev, cdb, REQ_OP_DRV_IN, /*buffer=*/NULL,
9145+
/*bufflen=*/0, /*timeout=*/HZ, /*retries=*/0, &args);
91659146
}
91669147

91679148
/**

0 commit comments

Comments
 (0)