summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Bodek <zbb@FreeBSD.org>2014-02-15 13:27:45 +0000
committerZbigniew Bodek <zbb@FreeBSD.org>2014-02-15 13:27:45 +0000
commitbccb7a02b54ba9916410c155568dee83e39ca3dc (patch)
tree4d1a12b8db4597b8da039f5bfb87898f17bbd655
parent6720dd234f1a9553008309d2af7f4e0bb47aeb78 (diff)
downloadsrc-test2-bccb7a02b54ba9916410c155568dee83e39ca3dc.tar.gz
src-test2-bccb7a02b54ba9916410c155568dee83e39ca3dc.zip
Notes
-rw-r--r--sys/arm/arm/pmap-v6.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/arm/arm/pmap-v6.c b/sys/arm/arm/pmap-v6.c
index ad7b281717dc..af253588187a 100644
--- a/sys/arm/arm/pmap-v6.c
+++ b/sys/arm/arm/pmap-v6.c
@@ -2973,8 +2973,10 @@ pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_prot_t access, vm_page_t m,
}
pl1pd = &pmap->pm_l1->l1_kva[L1_IDX(va)];
- if ((*pl1pd & L1_TYPE_MASK) == L1_S_PROTO)
- panic("pmap_enter_locked: attempt pmap_enter_on 1MB page");
+ if ((va < VM_MAXUSER_ADDRESS) &&
+ (*pl1pd & L1_TYPE_MASK) == L1_S_PROTO) {
+ (void)pmap_demote_section(pmap, va);
+ }
user = 0;
/*
@@ -3014,6 +3016,10 @@ do_l2b_alloc:
}
}
+ pl1pd = &pmap->pm_l1->l1_kva[L1_IDX(va)];
+ if ((*pl1pd & L1_TYPE_MASK) == L1_S_PROTO)
+ panic("pmap_enter: attempt to enter on 1MB page, va: %#x", va);
+
ptep = &l2b->l2b_kva[l2pte_index(va)];
opte = *ptep;