[PATCH] arm64: rsi: Correct type of realm_config::hash_algo

Kohei Enju enju.kohei at fujitsu.com
Tue Oct 13 19:16:19 PDT 2026


On 10/13 18:08, Catalin Marinas wrote:
> 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.

You're right. The RMM must zero the unused bits, but TF-RMM does not
appear to do so. I agree that this should be fixed in TF-RMM as well.

> That said, I'm ok with the explicit u8 here.

Thanks.

> 
> > 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.

Ack. I'll drop the inner union in v2.

Thanks,
Kohei

> 
> >  		};
> >  		u8 pad[0x200];
> >  	};
> 
> -- 
> Catalin



More information about the linux-arm-kernel mailing list