summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2005-06-16 13:23:39 +0000
committercognet <cognet@FreeBSD.org>2005-06-16 13:23:39 +0000
commit79dda5190c963b5c7a75279b19c176e33272925a (patch)
tree367091714a324839ca4a305c49a0b4922c4f49a4 /sys/arm
parent6a3b6acd6566d8047a0e38be1f62994773c9b19d (diff)
downloadFreeBSD-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/arm')
-rw-r--r--sys/arm/arm/pmap.c6
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)];
OpenPOWER on IntegriCloud