From: Hyeoncheol Jeong <hyenc.jeong@samsung.com>
To: "James.Bottomley@HansenPartnership.com"
<James.Bottomley@HansenPartnership.com>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
"bvanassche@acm.org" <bvanassche@acm.org>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Cc: ALIM AKHTAR <alim.akhtar@samsung.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Hyeoncheol Jeong <hyenc.jeong@samsung.com>,
Jinyoung Choi <j-young.choi@samsung.com>,
Dukhyun Kwon <d_hyun.kwon@samsung.com>,
Jeuk Kim <jeuk20.kim@samsung.com>,
Keoseong Park <keosung.park@samsung.com>,
Jaemyung Lee <jaemyung.lee@samsung.com>,
Jieon Seol <jieon.seol@samsung.com>,
Gyusun Lee <gyusun.lee@samsung.com>,
Yunjae Jo <yunjae00.jo@samsung.com>
Subject: [PATCH v3 1/2] scsi: ufs: Use unsigned types for the BSG query
Date: Fri, 24 Jul 2026 12:10:34 +0900 [thread overview]
Message-ID: <20260724031034epcms2p14226b8d04342b36525abd33aa33d3815@epcms2p1> (raw)
In-Reply-To: <20260724030812epcms2p4eb2c77cb4dcd5fd51ca9c3eaa5ea4bfa@epcms2p4>
The UPIU query length field is an unsigned 16-bit value per the UFS
standard, but ufs_bsg carried it around in signed int. Switch the
descriptor length and buffer pointer to u16/u8, fold the trivial
ufs_bsg_get_query_desc_size() helper into its only caller, and replace
min_t(int, ...) with min(). No functional change intended.
Signed-off-by: Hyeoncheol Jeong <hyenc.jeong@samsung.com>
---
drivers/ufs/core/ufs_bsg.c | 29 +++++++++++------------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/drivers/ufs/core/ufs_bsg.c b/drivers/ufs/core/ufs_bsg.c
index 58b506eac6dc..b300d9156fac 100644
--- a/drivers/ufs/core/ufs_bsg.c
+++ b/drivers/ufs/core/ufs_bsg.c
@@ -13,21 +13,8 @@
#include <ufs/ufshcd.h>
#include "ufshcd-priv.h"
-static int ufs_bsg_get_query_desc_size(struct ufs_hba *hba, int *desc_len,
- struct utp_upiu_query *qr)
-{
- int desc_size = be16_to_cpu(qr->length);
-
- if (desc_size <= 0)
- return -EINVAL;
-
- *desc_len = min_t(int, QUERY_DESC_MAX_SIZE, desc_size);
-
- return 0;
-}
-
static int ufs_bsg_alloc_desc_buffer(struct ufs_hba *hba, struct bsg_job *job,
- uint8_t **desc_buff, int *desc_len,
+ u8 **desc_buff, u16 *desc_len,
enum query_opcode desc_op)
{
struct ufs_bsg_request *bsg_request = job->request;
@@ -39,11 +26,14 @@ static int ufs_bsg_alloc_desc_buffer(struct ufs_hba *hba, struct bsg_job *job,
goto out;
qr = &bsg_request->upiu_req.qr;
- if (ufs_bsg_get_query_desc_size(hba, desc_len, qr)) {
+ *desc_len = be16_to_cpu(qr->length);
+ if (*desc_len == 0) {
dev_err(hba->dev, "Illegal desc size\n");
return -EINVAL;
}
+ *desc_len = min(*desc_len, (u16)QUERY_DESC_MAX_SIZE);
+
if (*desc_len > job->request_payload.payload_len) {
dev_err(hba->dev, "Illegal desc size\n");
return -EINVAL;
@@ -136,8 +126,9 @@ static int ufs_bsg_request(struct bsg_job *job)
struct ufs_hba *hba = shost_priv(dev_to_shost(job->dev->parent));
struct uic_command uc = {};
int msgcode;
- uint8_t *buff = NULL;
- int desc_len = 0;
+ u8 *buff = NULL;
+ u16 desc_len = 0;
+ int buff_len;
enum query_opcode desc_op = UPIU_QUERY_OPCODE_NOP;
int ret;
bool rpmb = false;
@@ -156,9 +147,11 @@ static int ufs_bsg_request(struct bsg_job *job)
fallthrough;
case UPIU_TRANSACTION_NOP_OUT:
case UPIU_TRANSACTION_TASK_REQ:
+ buff_len = desc_len;
ret = ufshcd_exec_raw_upiu_cmd(hba, &bsg_request->upiu_req,
&bsg_reply->upiu_rsp, msgcode,
- buff, &desc_len, desc_op);
+ buff, &buff_len, desc_op);
+ desc_len = buff_len;
if (ret)
dev_err(hba->dev, "exe raw upiu: error code %d\n", ret);
else if (desc_op == UPIU_QUERY_OPCODE_READ_DESC && desc_len) {
--
2.25.1
next prev parent reply other threads:[~2026-07-24 3:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20260724030812epcms2p4eb2c77cb4dcd5fd51ca9c3eaa5ea4bfa@epcms2p4>
2026-07-24 3:08 ` [PATCH v3 0/2] scsi: ufs: Add support for the aggregated read query opcode Hyeoncheol Jeong
[not found] ` <CGME20260724030812epcms2p4eb2c77cb4dcd5fd51ca9c3eaa5ea4bfa@epcms2p1>
2026-07-24 3:10 ` Hyeoncheol Jeong [this message]
2026-07-24 19:46 ` [PATCH v3 1/2] scsi: ufs: Use unsigned types for the BSG query Bart Van Assche
2026-07-24 3:12 ` [PATCH v3 2/2] scsi: ufs: Add support for the aggregated read query opcode Hyeoncheol Jeong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260724031034epcms2p14226b8d04342b36525abd33aa33d3815@epcms2p1 \
--to=hyenc.jeong@samsung.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=alim.akhtar@samsung.com \
--cc=bvanassche@acm.org \
--cc=d_hyun.kwon@samsung.com \
--cc=gyusun.lee@samsung.com \
--cc=j-young.choi@samsung.com \
--cc=jaemyung.lee@samsung.com \
--cc=jeuk20.kim@samsung.com \
--cc=jieon.seol@samsung.com \
--cc=keosung.park@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=yunjae00.jo@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®