[PATCH v8 3/5] arm64: mm: support large block mapping when rodata=full

Guenter Roeck groeck at google.com
Sun Nov 2 09:49:50 PST 2025


On Sun, Nov 2, 2025 at 7:09 AM Ryan Roberts <linux at roeck-us.net> wrote:
...
> commit 602ec2db74e5abfb058bd03934475ead8558eb72
> Author: Ryan Roberts <ryan.roberts at arm.com>
> Date:   Sun Nov 2 11:45:18 2025 +0000
>
>     arm64: mm: Don't attempt to split known pte-mapped regions
>
>     It has been reported that split_kernel_leaf_mapping() is trying to sleep
>     in non-sleepable context. It does this when acquiring the
>     pgtable_split_lock mutex, when either CONFIG_DEBUG_ALLOC or
>     CONFIG_KFENCE are enabled, which change linear map permissions within
>     softirq context during memory allocation and/or freeing.
>
>     But it turns out that the memory for which these features may attempt to
>     modify the permissions is always mapped by pte, so there is no need to
>     attempt to split the mapping. So let's exit early in these cases and
>     avoid attempting to take the mutex.
>
>     Closes: https://lore.kernel.org/all/f24b9032-0ec9-47b1-8b95-c0eeac7a31c5@roeck-us.net/
>     Fixes: a166563e7ec3 ("arm64: mm: support large block mapping when rodata=full")
>     Signed-off-by: Ryan Roberts <ryan.roberts at arm.com>

Tested-by: Guenter Roeck <groeck at google.com>

Thanks a lot for the quick turnaround!

Guenter



More information about the linux-arm-kernel mailing list