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-all
mailing list