> > From: Bean Huo <beanhuo@xxxxxxxxxx> > > Move sg_copy_from_buffer() below its associated case statement. > > Signed-off-by: Bean Huo <beanhuo@xxxxxxxxxx> Reviewed-by: Avri Altman <avri.altman@xxxxxxx> > --- > drivers/ufs/core/ufs_bsg.c | 27 ++++++++------------------- > 1 file changed, 8 insertions(+), 19 deletions(-) > > diff --git a/drivers/ufs/core/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c index > 9ac8204f1ee6..850a0d798f63 100644 > --- a/drivers/ufs/core/ufs_bsg.c > +++ b/drivers/ufs/core/ufs_bsg.c > @@ -90,11 +90,8 @@ static int ufs_bsg_request(struct bsg_job *job) > desc_op = bsg_request->upiu_req.qr.opcode; > ret = ufs_bsg_alloc_desc_buffer(hba, job, &desc_buff, > &desc_len, desc_op); > - if (ret) { > - ufshcd_rpm_put_sync(hba); > + if (ret) > goto out; > - } > - > fallthrough; > case UPIU_TRANSACTION_NOP_OUT: > case UPIU_TRANSACTION_TASK_REQ: > @@ -102,9 +99,12 @@ static int ufs_bsg_request(struct bsg_job *job) > &bsg_reply->upiu_rsp, msgcode, > desc_buff, &desc_len, desc_op); > if (ret) > - dev_err(hba->dev, > - "exe raw upiu: error code %d\n", ret); > - > + dev_err(hba->dev, "exe raw upiu: error code %d\n", ret); > + else if (desc_op == UPIU_QUERY_OPCODE_READ_DESC && desc_len) > + bsg_reply->reply_payload_rcv_len = > + sg_copy_from_buffer(job->request_payload.sg_list, > + job->request_payload.sg_cnt, > + desc_buff, > + desc_len); > break; > case UPIU_TRANSACTION_UIC_CMD: > memcpy(&uc, &bsg_request->upiu_req.uc, UIC_CMD_SIZE); @@ - > 123,20 +123,9 @@ static int ufs_bsg_request(struct bsg_job *job) > break; > } > > +out: > ufshcd_rpm_put_sync(hba); > - > - if (!desc_buff) > - goto out; > - > - if (desc_op == UPIU_QUERY_OPCODE_READ_DESC && desc_len) > - bsg_reply->reply_payload_rcv_len = > - sg_copy_from_buffer(job->request_payload.sg_list, > - job->request_payload.sg_cnt, > - desc_buff, desc_len); > - > kfree(desc_buff); > - > -out: > bsg_reply->result = ret; > job->reply_len = sizeof(struct ufs_bsg_reply); > /* complete the job here only if no error */ > -- > 2.25.1