Page MenuHomeFreeBSD

D36698.diff
No OneTemporary

D36698.diff

diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c
--- a/sys/arm64/arm64/pmap.c
+++ b/sys/arm64/arm64/pmap.c
@@ -3893,6 +3893,8 @@
restart:
if (psind == 2) {
+ PMAP_ASSERT_L1_BLOCKS_SUPPORTED;
+
l0p = pmap_l0(pmap, va);
if ((pmap_load(l0p) & ATTR_DESCR_VALID) == 0) {
mp = _pmap_alloc_l3(pmap, pmap_l0_pindex(va), NULL);
@@ -3917,10 +3919,9 @@
mp->ref_count++;
}
}
- KASSERT((origpte & ~ATTR_MASK) == (newpte & ~ATTR_MASK) ||
- (L1_BLOCKS_SUPPORTED &&
- (origpte & ATTR_DESCR_MASK) == L1_BLOCK &&
- (origpte & ATTR_DESCR_VALID) == 0),
+ KASSERT(((origpte & ~ATTR_MASK) == (newpte & ~ATTR_MASK) &&
+ (origpte & ATTR_DESCR_MASK) == L1_BLOCK) ||
+ (origpte & ATTR_DESCR_VALID) == 0,
("va %#lx changing 1G phys page l1 %#lx newpte %#lx",
va, origpte, newpte));
pmap_store(l1p, newpte);

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 6:41 PM (21 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14662923
Default Alt Text
D36698.diff (865 B)

Event Timeline