Re: [PATCH v2 1/3] arm64: mm: Fix rodata=full block mapping support for realm guests

Kevin Brodsky
2026-04-09T09:53:48Z

On 07/04/2026 12:52, Catalin Marinas wrote:
>> if we have forced pte mapping then the value of
>> can_set_direct_map() is irrelevant - we will never need to split because we are
>> already pte-mapped.
> can_set_direct_map() is used in other places, so its value is
> relevant, e.g. sys_memfd_secret() is rejected if this function returns
> false.

Indeed, I have noticed this before: currently set_direct_map_*_noflush()
and other functions will either fail or do nothing if none of the
features (rodata=full, etc.) is enabled, even if we would be able to
split the linear map using BBML2-noabort.

What would make more sense to me is to enable the use of BBML2-noabort
unconditionally if !force_pte_mapping(). We can then have
can_set_direct_map() return true if we have BBML2-noabort, and we no
longer need to check it in map_mem().

This is a functional change that doesn't have anything to do with realms
so it should probably be a separate series - happy to take care of it
once the dust settles on the realm handling.

- Kevin