Re: [PATCH v8 3/5] arm64: mm: support large block mapping when rodata=full
From: Guenter Roeck
Date: Sun Nov 02 2025 - 12:52:31 EST
On 11/2/25 09:49, Guenter Roeck wrote:
On Sun, Nov 2, 2025 at 7:09 AM Ryan Roberts <linux@xxxxxxxxxxxx> wrote:
Oops. That was sent from my Google address and got messed up.
Copying Ryan this time. Sorry for the noise.
Guenter
...
commit 602ec2db74e5abfb058bd03934475ead8558eb72
Author: Ryan Roberts <ryan.roberts@xxxxxxx>
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@xxxxxxxxxxxx/
Fixes: a166563e7ec3 ("arm64: mm: support large block mapping when rodata=full")
Signed-off-by: Ryan Roberts <ryan.roberts@xxxxxxx>
Tested-by: Guenter Roeck <groeck@xxxxxxxxxx>
Thanks a lot for the quick turnaround!
Guenter