From: Keith Busch <kbusch@kernel.org>
To: Daniel Wagner <dwagner@suse.de>
Cc: Keith Busch <kbusch@meta.com>,
linux-nvme@lists.infradead.org, wagi@kernel.org
Subject: Re: [PATCH] libnvme: do not byte swap command dwords
Date: Thu, 3 Apr 2025 11:35:49 -0600 [thread overview]
Message-ID: <Z-7G9fQkoNFhaS2q@kbusch-mbp> (raw)
In-Reply-To: <315bb015-66e3-49cd-be3d-a93b97846617@flourine.local>
On Thu, Apr 03, 2025 at 07:25:13PM +0200, Daniel Wagner wrote:
> On Thu, Apr 03, 2025 at 07:43:15AM -0700, Keith Busch wrote:
> > From: Keith Busch <kbusch@kernel.org>
> >
> > The dwords always need to be set in the cpu native format. The driver
> > will handle setting up the SQE in the nvme little-endian order, and big
> > endian is never used, so this byte swapping was wrong.
> >
> > Link: https://github.com/linux-nvme/nvme-cli/issues/2761
> > Signed-off-by: Keith Busch <kbusch@kernel.org>
> > ---
> > src/nvme/ioctl.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/nvme/ioctl.c b/src/nvme/ioctl.c
> > index 18b228d9..86c2b702 100644
> > --- a/src/nvme/ioctl.c
> > +++ b/src/nvme/ioctl.c
> > @@ -1920,9 +1920,9 @@ static int nvme_set_var_size_tags(__u32 *cmd_dw2, __u32 *cmd_dw3, __u32 *cmd_dw1
> > return -1;
> > }
> >
> > - *cmd_dw2 = cpu_to_be32(cdw2);
> > - *cmd_dw3 = cpu_to_be32(cdw3);
> > - *cmd_dw14 = cpu_to_be32(cdw14);
> > + *cmd_dw2 = cdw2;
> > + *cmd_dw3 = cdw3;
> > + *cmd_dw14 = cdw14;
>
> in this case shouldn't we use cpu_to_le32?
No, user space was only uses cpu native endian when constructing the
command. The driver handles the endian conversion if necessary.
That conversion is just for the command control side. The driver doesn't
do any such manipulation on the data plane, so endianness in payloads
for commands like "copy", "dsm", or PI meatada need to be handled by the
application.
next prev parent reply other threads:[~2025-04-03 17:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-03 14:43 [PATCH] libnvme: do not byte swap command dwords Keith Busch
2025-04-03 17:25 ` Daniel Wagner
2025-04-03 17:35 ` Keith Busch [this message]
2025-04-03 17:38 ` Daniel Wagner
2025-04-03 18:25 ` Daniel Wagner
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=Z-7G9fQkoNFhaS2q@kbusch-mbp \
--to=kbusch@kernel.org \
--cc=dwagner@suse.de \
--cc=kbusch@meta.com \
--cc=linux-nvme@lists.infradead.org \
--cc=wagi@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.