[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <9e60e996-070e-43a7-80e9-efdfda9f6223@app.fastmail.com>
Date: Mon, 09 Dec 2024 16:27:14 +0100
From: "Arnd Bergmann" <arnd@...db.de>
To: "Yeoreum Yun" <yeoreum.yun@....com>, "Sudeep Holla" <sudeep.holla@....com>
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
nd@....com
Subject: Re: [PATCH v2 2/2] firmware/arm_ffa: remove __le64_to_cpu() when set uuid for
direct msg v2
On Tue, Dec 3, 2024, at 15:31, Yeoreum Yun wrote:
> From: Levi Yun <yeoreum.yun@....com>
I just saw this commit in the pull request, and I'm very
confused because the description does not match the
patch contents.
> Accoding to FF-A specification[0] 15.4 FFA_MSG_SEND_DRIECT_REQ2,
> then UUID is saved in register:
> UUID Lo x2 Bytes[0...7] of UUID with byte 0 in the low-order bits.
> UUID Hi x3 Bytes[8...15] of UUID with byte 8 in the low-order bits.
The specification you cite here clearly describes little-endian
format, i.e. the low-order byte corresponds to the first
memory address.
> That means, we don't need to swap the uuid when it send via direct
> message request version 2, just send it as saved in memory.
"As saved in memory" does not sound like a useful description
when passing arguments through registers, as the register
contents are not defined in terms of byte offsets.
Can you describe what bug you found? If the byteorder on
big-endian kernels is wrong in the current version and your
patch fixes it, it sounds like the specification needs to
be updated describe both big-endian and little-endian
byte-order, and how the firmware detects which one is used.
> Remove le64_to_cpu() for uuid in direct message request version 2,
> and change uuid_regs' type to unsigned long.
'unsigned long' makes the code unnecessarily incompatible
with 32-bit builds.
Arnd
Powered by blists - more mailing lists