Correct contigmalloc2()'s implementation of M_ZERO. Specifically,

contigmalloc2() was always testing the first physical page for PG_ZERO,
not the current page of interest.

Submitted by: Michael Plass
PR: 81301
MFC after: 1 week
This commit is contained in:
alc 2007-04-19 05:39:54 +00:00
parent 6e14b3e802
commit a10280e050

View File

@ -557,7 +557,7 @@ contigmalloc2(vm_page_t m, vm_pindex_t npages, int flags)
for (i = 0; i < npages; i++) {
vm_page_insert(&m[i], object,
OFF_TO_IDX(tmp_addr - VM_MIN_KERNEL_ADDRESS));
if ((flags & M_ZERO) && !(m->flags & PG_ZERO))
if ((flags & M_ZERO) && !(m[i].flags & PG_ZERO))
pmap_zero_page(&m[i]);
tmp_addr += PAGE_SIZE;
}