[PATCH] arm64: rsi: Correct type of realm_config::hash_algo
Catalin Marinas
catalin.marinas at arm.com
Tue Oct 13 10:08:28 PDT 2026
On Tue, Sep 29, 2026 at 08:36:00PM +0900, Kohei Enju wrote:
> The RMM specification defines RsiHashAlgorithm as an 8-bit type, but
> realm_config::hash_algo is currently declared as unsigned long.
>
> There are currently no upstream users of this field, so the mismatch
> does not cause an observable issue today. However, a proposed series
> adding support for Realm measurement registers uses this field and
> exposes a bug caused by the incorrect type.
>
> Change hash_algo to u8 to match the RMM specification while preserving
> the size and layout of struct realm_config.
Doesn't the RMM spec say that the unused bits must be zero? B5.5.19.
That said, I'm ok with the explicit u8 here.
> Link: https://lore.kernel.org/all/20260413084957.327661-4-sami.mujawar@arm.com/
> Signed-off-by: Kohei Enju <enju.kohei at fujitsu.com>
> ---
> include/linux/arm-smccc-rsi.h | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/arm-smccc-rsi.h b/include/linux/arm-smccc-rsi.h
> index fddb77986f70..2fb6ec5e0298 100644
> --- a/include/linux/arm-smccc-rsi.h
> +++ b/include/linux/arm-smccc-rsi.h
> @@ -128,7 +128,10 @@ struct realm_config {
> union {
> struct {
> unsigned long ipa_bits; /* Width of IPA in bits */
> - unsigned long hash_algo; /* Hash algorithm */
> + union {
> + u8 hash_algo; /* Hash algorithm */
> + u8 pad_hash_algo[8];
> + };
I would skip the padding for now, we have one already. If we later add
the next fields, I have a slight preference for a u8 reserved[7] field
than another union.
> };
> u8 pad[0x200];
> };
--
Catalin
More information about the linux-arm-kernel
mailing list