svn commit: r261922 - head/sys/arm/arm
Zbigniew Bodek
zbb at FreeBSD.org
Sat Feb 15 13:27:46 UTC 2014
Author: zbb
Date: Sat Feb 15 13:27:45 2014
New Revision: 261922
URL: http://svnweb.freebsd.org/changeset/base/261922
Log:
Handle pmap_enter() on already promoted mappings for ARMv6/v7
Attempt to demote the superpage if trying to pmap_enter() on
one. Panic only when the particular superpage should
no longer exist for that pmap and address.
Modified:
head/sys/arm/arm/pmap-v6.c
Modified: head/sys/arm/arm/pmap-v6.c
==============================================================================
--- head/sys/arm/arm/pmap-v6.c Sat Feb 15 13:24:58 2014 (r261921)
+++ head/sys/arm/arm/pmap-v6.c Sat Feb 15 13:27:45 2014 (r261922)
@@ -2973,8 +2973,10 @@ pmap_enter_locked(pmap_t pmap, vm_offset
}
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;
More information about the svn-src-head
mailing list