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

From: Yang Shi

Date: Thu Apr 09 2026 - 19:08:45 EST




On 4/9/26 11:33 AM, Catalin Marinas wrote:
On Thu, Apr 09, 2026 at 09:48:58AM -0700, Yang Shi wrote:
On 4/9/26 8:20 AM, Catalin Marinas wrote:
On Thu, Apr 09, 2026 at 11:53:41AM +0200, Kevin Brodsky wrote:
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().
Indeed.
I'm trying to wrap up my head for this discussion. IIUC, if none of the
features is enabled, it means we don't need do anything because the direct
map is not changed. For example, if vmalloc doesn't change direct map
permission when rodata != full, there is no need to call
set_direct_map_*_noflush(). So unconditionally checking BBML2_NOABORT will
change the behavior unnecessarily. Did I miss something?

I think the only exception is secretmem if I don't miss something.
Currently, secretmem is actually not supported if none of the features is
enabled. But BBML2_NOABORT allows to lift the restriction.
Yes, it's secretmem only AFAICT. I think execmem will only change the
linear map if rodata_full anyway.

Yes, execmem calls set_memory_rox(), which won't change linear map permission if rodata_full is not enabled.

Thanks,
Yang