svn commit: r252653 - head/sys/vm

Neel Natu neel at FreeBSD.org
Wed Jul 3 23:38:38 UTC 2013


Author: neel
Date: Wed Jul  3 23:38:37 2013
New Revision: 252653
URL: http://svnweb.freebsd.org/changeset/base/252653

Log:
  vm_phys_fictitious_reg_range() was losing the 'memattr' because it would be
  reset by pmap_page_init() right after being initialized in vm_page_initfake().
  
  The statement above is with reference to the amd64 implementation of
  pmap_page_init().
  
  Fix this by calling 'pmap_page_init()' in 'vm_page_initfake()' before changing
  the 'memattr'.
  
  Reviewed by:	kib
  MFC after:	2 weeks

Modified:
  head/sys/vm/vm_page.c
  head/sys/vm/vm_phys.c

Modified: head/sys/vm/vm_page.c
==============================================================================
--- head/sys/vm/vm_page.c	Wed Jul  3 23:38:02 2013	(r252652)
+++ head/sys/vm/vm_page.c	Wed Jul  3 23:38:37 2013	(r252653)
@@ -645,6 +645,7 @@ vm_page_initfake(vm_page_t m, vm_paddr_t
 	/* Fictitious pages don't use "order" or "pool". */
 	m->oflags = VPO_BUSY | VPO_UNMANAGED;
 	m->wire_count = 1;
+	pmap_page_init(m);
 memattr:
 	pmap_page_set_memattr(m, memattr);
 }

Modified: head/sys/vm/vm_phys.c
==============================================================================
--- head/sys/vm/vm_phys.c	Wed Jul  3 23:38:02 2013	(r252652)
+++ head/sys/vm/vm_phys.c	Wed Jul  3 23:38:37 2013	(r252653)
@@ -559,7 +559,6 @@ vm_phys_fictitious_reg_range(vm_paddr_t 
 	}
 	for (i = 0; i < page_count; i++) {
 		vm_page_initfake(&fp[i], start + PAGE_SIZE * i, memattr);
-		pmap_page_init(&fp[i]);
 		fp[i].oflags &= ~(VPO_BUSY | VPO_UNMANAGED);
 	}
 	mtx_lock(&vm_phys_fictitious_reg_mtx);


More information about the svn-src-head mailing list