diff options
| author | Ian Moffett <ian@osmora.org> | 2025-11-19 15:21:29 -0500 |
|---|---|---|
| committer | Ian Moffett <ian@osmora.org> | 2025-11-19 15:21:29 -0500 |
| commit | c3092a9c61c7e791897b04ebd56a1b198db064f9 (patch) | |
| tree | 272c7f6e035d5f57779c25a848360d56b90e8702 /sys/arch | |
| parent | 6fbda065811b73e8092387fe3687c645b7da466e (diff) | |
kern/amd64: mp: Don't return on present entry
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/arch')
| -rw-r--r-- | sys/arch/amd64/cpu/mmu.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/arch/amd64/cpu/mmu.c b/sys/arch/amd64/cpu/mmu.c index 48c096d..b709ee1 100644 --- a/sys/arch/amd64/cpu/mmu.c +++ b/sys/arch/amd64/cpu/mmu.c @@ -143,7 +143,9 @@ pmap_get_level(struct mmu_vas *vas, uintptr_t va, bool en_alloc, pagelevel_t lvl while ((curlvl--) > lvl) { index = pmap_get_index(va, curlvl); if (ISSET(pmap[index], PTE_P)) { - return PHYS_TO_VIRT(pmap[index] & PTE_ADDR_MASK); + pmap = PHYS_TO_VIRT(pmap[index] & PTE_ADDR_MASK); + --curlvl; + continue; } if (!en_alloc) { |
