Page MenuHomeFreeBSD

D19670.id55329.diff
No OneTemporary

D19670.id55329.diff

Index: head/sys/amd64/amd64/pmap.c
===================================================================
--- head/sys/amd64/amd64/pmap.c
+++ head/sys/amd64/amd64/pmap.c
@@ -5308,6 +5308,8 @@
pt_entry_t PG_G, PG_RW, PG_V;
vm_page_t mt, pdpg;
+ KASSERT(pmap == kernel_pmap || (newpde & PG_W) == 0,
+ ("pmap_enter_pde: cannot create wired user mapping"));
PG_G = pmap_global_bit(pmap);
PG_RW = pmap_rw_bit(pmap);
KASSERT((newpde & (pmap_modified_bit(pmap) | PG_RW)) != PG_RW,
Index: head/sys/i386/i386/pmap.c
===================================================================
--- head/sys/i386/i386/pmap.c
+++ head/sys/i386/i386/pmap.c
@@ -3882,6 +3882,8 @@
rw_assert(&pvh_global_lock, RA_WLOCKED);
KASSERT((newpde & (PG_M | PG_RW)) != PG_RW,
("pmap_enter_pde: newpde is missing PG_M"));
+ KASSERT(pmap == kernel_pmap || (newpde & PG_W) == 0,
+ ("pmap_enter_pde: cannot create wired user mapping"));
PMAP_LOCK_ASSERT(pmap, MA_OWNED);
pde = pmap_pde(pmap, va);
oldpde = *pde;
Index: head/sys/vm/vm_fault.c
===================================================================
--- head/sys/vm/vm_fault.c
+++ head/sys/vm/vm_fault.c
@@ -294,7 +294,7 @@
rounddown2(vaddr, pagesizes[m_super->psind]) >= fs->entry->start &&
roundup2(vaddr + 1, pagesizes[m_super->psind]) <= fs->entry->end &&
(vaddr & (pagesizes[m_super->psind] - 1)) == (VM_PAGE_TO_PHYS(m) &
- (pagesizes[m_super->psind] - 1)) &&
+ (pagesizes[m_super->psind] - 1)) && !wired &&
pmap_ps_enabled(fs->map->pmap)) {
flags = PS_ALL_VALID;
if ((prot & VM_PROT_WRITE) != 0) {
@@ -469,7 +469,7 @@
psind = m->psind;
if (psind > 0 && ((vaddr & (pagesizes[psind] - 1)) != 0 ||
pidx + OFF_TO_IDX(pagesizes[psind]) - 1 > pager_last ||
- !pmap_ps_enabled(fs->map->pmap)))
+ !pmap_ps_enabled(fs->map->pmap) || wired))
psind = 0;
#else
psind = 0;

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 21, 9:45 PM (14 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27122644
Default Alt Text
D19670.id55329.diff (1 KB)

Event Timeline