summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-03-28 17:02:21 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-03-28 17:02:40 +0100
commit356cd427a6b0ec7905045034e31ec3012bc5b600 (patch)
treef9dc6b8a9b8d84a02706f12f84d7a1312a33d1d9
parent22c2d7ea38baa8ee9b3e99ede27451409178571e (diff)
parent0b3504b6db86c531e8b53b8e9aa9030db6e72357 (diff)
Merge branch 'master' into master-x86_64
-rw-r--r--i386/intel/pmap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index bb47edf5..4b223ec5 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -1281,8 +1281,8 @@ pmap_t pmap_create(vm_size_t size)
kmem_cache_free(&pmap_cache, (vm_address_t) p);
return PMAP_NULL;
}
- memset(p->pdpbase, 0, INTEL_PGBYTES);
+ memset(p->pdpbase, 0, INTEL_PGBYTES);
{
for (i = 0; i < PDPNUM; i++)
WRITE_PTE(&p->pdpbase[i],
@@ -1290,6 +1290,7 @@ pmap_t pmap_create(vm_size_t size)
| INTEL_PTE_VALID | INTEL_PTE_WRITE);
}
#ifdef __x86_64__
+ // FIXME: use kmem_cache_alloc instead
if (kmem_alloc_wired(kernel_map,
(vm_offset_t *)&p->l4base, INTEL_PGBYTES)
!= KERN_SUCCESS)
@@ -1297,6 +1298,7 @@ pmap_t pmap_create(vm_size_t size)
memset(p->l4base, 0, INTEL_PGBYTES);
WRITE_PTE(&p->l4base[0], pa_to_pte(kvtophys((vm_offset_t) p->pdpbase)) | INTEL_PTE_VALID | INTEL_PTE_WRITE);
#ifdef MACH_PV_PAGETABLES
+ // FIXME: use kmem_cache_alloc instead
if (kmem_alloc_wired(kernel_map,
(vm_offset_t *)&p->user_pdpbase, INTEL_PGBYTES)
!= KERN_SUCCESS)
@@ -1307,6 +1309,7 @@ pmap_t pmap_create(vm_size_t size)
for (i = 0; i < lin2pdpnum(VM_MAX_ADDRESS); i++)
WRITE_PTE(&p->user_pdpbase[i], pa_to_pte(kvtophys((vm_offset_t) page_dir[i])) | INTEL_PTE_VALID | INTEL_PTE_WRITE);
}
+ // FIXME: use kmem_cache_alloc instead
if (kmem_alloc_wired(kernel_map,
(vm_offset_t *)&p->user_l4base, INTEL_PGBYTES)
!= KERN_SUCCESS)