diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index a5c406019b4..5ec1ac97a0d 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -3947,9 +3947,9 @@ pmap_page_array_startup(long pages) vm_page_array_size = pages; - start = va = VM_MIN_KERNEL_ADDRESS; - end = va + pages * sizeof(struct vm_page); - while (va < end) { + start = VM_MIN_KERNEL_ADDRESS; + end = start + pages * sizeof(struct vm_page); + for (va = start; va < end; va += NBPDR) { pfn = first_page + (va - start) / sizeof(struct vm_page); domain = _vm_phys_domain(ptoa(pfn)); pdpe = pmap_pdpe(kernel_pmap, va); @@ -3969,7 +3969,6 @@ pmap_page_array_startup(long pages) newpdir = (pd_entry_t)(pa | X86_PG_V | X86_PG_RW | X86_PG_A | X86_PG_M | PG_PS | pg_g | pg_nx); pde_store(pde, newpdir); - va += NBPDR; } vm_page_array = (vm_page_t)start; }