diff options
author | jkim <jkim@FreeBSD.org> | 2017-06-15 02:39:33 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2017-06-15 02:39:33 +0000 |
commit | 40fc88e219ec203e0954b771f7d4f65e867a2a42 (patch) | |
tree | f09105ad158f7afe5ddaf4cda4fa52339b545506 /sys/vm | |
parent | 52b2adbfe7c57be9249fab14c0fccac153ae0964 (diff) | |
download | FreeBSD-src-40fc88e219ec203e0954b771f7d4f65e867a2a42.zip FreeBSD-src-40fc88e219ec203e0954b771f7d4f65e867a2a42.tar.gz |
Null pointer must be checked before use. This fixes a regression introduced
in r318716.
Note it is a direct commit to stable/11 because head removed support for
idle page zeroing in r305362.
PR: 219994
Reviewed by: markj
Approved by: re (gjb)
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_page.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 6d8b364..feb30cc 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1759,18 +1759,18 @@ retry: pagedaemon_wakeup(); return (NULL); } - if (m_ret != NULL) + if (m_ret != NULL) { vm_phys_freecnt_adj(m_ret, -npages); - else { + for (m = m_ret; m < &m_ret[npages]; m++) + if ((m->flags & PG_ZERO) != 0) + vm_page_zero_count--; + } else { #if VM_NRESERVLEVEL > 0 if (vm_reserv_reclaim_contig(npages, low, high, alignment, boundary)) goto retry; #endif } - for (m = m_ret; m < &m_ret[npages]; m++) - if ((m->flags & PG_ZERO) != 0) - vm_page_zero_count--; mtx_unlock(&vm_page_queue_free_mtx); if (m_ret == NULL) return (NULL); |