summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2010-01-18 21:17:03 +0000
committeralc <alc@FreeBSD.org>2010-01-18 21:17:03 +0000
commitf870e8630e0e421cce286c928d950a148a741bd3 (patch)
tree2e450ac98bb2f0695f4701fb37972fb6877a822b /sys/amd64
parent5fcd322a258801641a2695545efcab9501a0cd37 (diff)
downloadFreeBSD-src-f870e8630e0e421cce286c928d950a148a741bd3.zip
FreeBSD-src-f870e8630e0e421cce286c928d950a148a741bd3.tar.gz
MFC r202085
Simplify pmap_init(). Additionally, correct a harmless misbehavior on i386.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/pmap.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 70fc041..b26cc68 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -626,7 +626,6 @@ pmap_page_init(vm_page_t m)
void
pmap_init(void)
{
- pd_entry_t *pd;
vm_page_t mpte;
vm_size_t s;
int i, pv_npg;
@@ -635,18 +634,13 @@ pmap_init(void)
* Initialize the vm page array entries for the kernel pmap's
* page table pages.
*/
- pd = pmap_pde(kernel_pmap, KERNBASE);
for (i = 0; i < NKPT; i++) {
- if ((pd[i] & (PG_PS | PG_V)) == (PG_PS | PG_V))
- continue;
- KASSERT((pd[i] & PG_V) != 0,
- ("pmap_init: page table page is missing"));
- mpte = PHYS_TO_VM_PAGE(pd[i] & PG_FRAME);
+ mpte = PHYS_TO_VM_PAGE(KPTphys + (i << PAGE_SHIFT));
KASSERT(mpte >= vm_page_array &&
mpte < &vm_page_array[vm_page_array_size],
("pmap_init: page table page is out of range"));
mpte->pindex = pmap_pde_pindex(KERNBASE) + i;
- mpte->phys_addr = pd[i] & PG_FRAME;
+ mpte->phys_addr = KPTphys + (i << PAGE_SHIFT);
}
/*
OpenPOWER on IntegriCloud