On 09/12/2024 11:03, Peter Zijlstra wrote:
On Fri, Dec 06, 2024 at 10:11:02AM +0000, Kevin Brodsky wrote:
quoted
kernel_pgtables_set_pkey() allows setting the pkey of all page table
pages in swapper_pg_dir, recursively. This will be needed by
kpkeys_hardened_pgtables, as it relies on all PTPs being mapped with
a non-default pkey. Those initial kernel page tables cannot
practically be assigned a non-default pkey right when they are
allocated, so mutating them during (early) boot is required.
Signed-off-by: Kevin Brodsky <redacted>
---
It feels that some sort of locking is called for in
kernel_pgtables_set_pkey(), but I couldn't figure out what would be
appropriate.
init_mm.page_table_lock is typically the one used to serialize kernel
page tables IIRC.
That does seem to be the case, thanks! Hopefully holding that spinlock
for the entire duration of the loop in kernel_pgtables_set_pkey() won't
be an issue.
- Kevin