diff options
author | Zbigniew Bodek <zbb@FreeBSD.org> | 2014-02-15 13:27:45 +0000 |
---|---|---|
committer | Zbigniew Bodek <zbb@FreeBSD.org> | 2014-02-15 13:27:45 +0000 |
commit | bccb7a02b54ba9916410c155568dee83e39ca3dc (patch) | |
tree | 4d1a12b8db4597b8da039f5bfb87898f17bbd655 | |
parent | 6720dd234f1a9553008309d2af7f4e0bb47aeb78 (diff) | |
download | src-test2-bccb7a02b54ba9916410c155568dee83e39ca3dc.tar.gz src-test2-bccb7a02b54ba9916410c155568dee83e39ca3dc.zip |
Notes
-rw-r--r-- | sys/arm/arm/pmap-v6.c | 10 |
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; |