When pmap_enter_object()'s call to pmap_enter_{l2,pde}() fails to create a managed mapping within the kernel address space due to the inability to allocate a PV entry, it needs to remove the kernel page table page from the pmap's trie of idle page table pages. Previously, it did not.
Details
Details
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
sys/arm64/arm64/pmap.c | ||
---|---|---|
5835 | Can you use ADDR_IS_KERNEL here? |
Comment Actions
Is my reading of the code correct where uwptpg == NULL in the new else case because it's only set for userspace maps? If so it means we will call pmap_remove_pt_page.
Comment Actions
I do not see why not. It is trivial macro, although I prefer a different way to write it for amd64, like
#define ADDR_IS_KERNEL(va) ((vm_offset_t)(va) >= kva_layout.kva_min)