svn commit: r239137 - head/sys/amd64/amd64

Alan Cox alc at FreeBSD.org
Wed Aug 8 05:28:31 UTC 2012


Author: alc
Date: Wed Aug  8 05:28:30 2012
New Revision: 239137
URL: http://svn.freebsd.org/changeset/base/239137

Log:
  The assertion that I added in r238889 could legitimately fail when a
  debugger creates a breakpoint.  Replace that assertion with a narrower
  one that still achieves my objective.
  
  Reported and tested by:	kib

Modified:
  head/sys/amd64/amd64/pmap.c

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Wed Aug  8 04:28:45 2012	(r239136)
+++ head/sys/amd64/amd64/pmap.c	Wed Aug  8 05:28:30 2012	(r239137)
@@ -3445,7 +3445,6 @@ pmap_enter(pmap_t pmap, vm_offset_t va, 
 	KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS,
 	    ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%lx)",
 	    va));
-	KASSERT((prot & access) == access, ("pmap_enter: access not in prot"));
 	KASSERT((m->oflags & VPO_UNMANAGED) != 0 || va < kmi.clean_sva ||
 	    va >= kmi.clean_eva,
 	    ("pmap_enter: managed mapping within the clean submap"));
@@ -3458,6 +3457,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va, 
 		newpte |= PG_M;
 	if ((prot & VM_PROT_WRITE) != 0)
 		newpte |= PG_RW;
+	KASSERT((newpte & (PG_M | PG_RW)) != PG_M,
+	    ("pmap_enter: access includes VM_PROT_WRITE but prot doesn't"));
 	if ((prot & VM_PROT_EXECUTE) == 0)
 		newpte |= pg_nx;
 	if (wired)


More information about the svn-src-head mailing list