diff options
author | cognet <cognet@FreeBSD.org> | 2005-06-16 13:23:39 +0000 |
---|---|---|
committer | cognet <cognet@FreeBSD.org> | 2005-06-16 13:23:39 +0000 |
commit | 79dda5190c963b5c7a75279b19c176e33272925a (patch) | |
tree | 367091714a324839ca4a305c49a0b4922c4f49a4 /sys | |
parent | 6a3b6acd6566d8047a0e38be1f62994773c9b19d (diff) | |
download | FreeBSD-src-79dda5190c963b5c7a75279b19c176e33272925a.zip FreeBSD-src-79dda5190c963b5c7a75279b19c176e33272925a.tar.gz |
Try harder to detect if the allocated memory for L2 PTP comes from a 1MB
section or not.
Approved by: re (blanket)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arm/arm/pmap.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arm/arm/pmap.c b/sys/arm/arm/pmap.c index 28e5e9f..a2ef3d6 100644 --- a/sys/arm/arm/pmap.c +++ b/sys/arm/arm/pmap.c @@ -1089,6 +1089,9 @@ pmap_l2ptp_ctor(void *mem, int size, void *arg, int flags) #ifndef PMAP_INCLUDE_PTE_SYNC struct l2_bucket *l2b; pt_entry_t *ptep, pte; +#ifdef ARM_USE_SMALL_ALLOC + pd_entry_t *pde; +#endif vm_offset_t va = (vm_offset_t)mem & ~PAGE_MASK; /* @@ -1100,7 +1103,8 @@ pmap_l2ptp_ctor(void *mem, int size, void *arg, int flags) * correct. */ #ifdef ARM_USE_SMALL_ALLOC - if (flags & UMA_SLAB_KMEM) { + pde = &kernel_pmap->pm_l1->l1_kva[L1_IDX(va)]; + if (!l1pte_section_p(*pde)) { #endif l2b = pmap_get_l2_bucket(pmap_kernel(), va); ptep = &l2b->l2b_kva[l2pte_index(va)]; |