diff options
author | kib <kib@FreeBSD.org> | 2017-01-06 11:46:24 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2017-01-06 11:46:24 +0000 |
commit | 7fda61f5af82b02d1a68155c7849ecbd9b4c06d6 (patch) | |
tree | 1867e15bfacdf2ee9ad0acbdb7f88b777d6e8b5c | |
parent | ae38043312f07747f62c4d1a681130f8e4aff1c1 (diff) | |
download | FreeBSD-src-7fda61f5af82b02d1a68155c7849ecbd9b4c06d6.zip FreeBSD-src-7fda61f5af82b02d1a68155c7849ecbd9b4c06d6.tar.gz |
MFC r310834:
Assert that the pages found on the object queue by vm_page_next() and
vm_page_prev() have correct ownership.
-rw-r--r-- | sys/vm/vm_page.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index dec3e4d..b4b4256 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1327,9 +1327,11 @@ vm_page_next(vm_page_t m) vm_page_t next; VM_OBJECT_ASSERT_LOCKED(m->object); - if ((next = TAILQ_NEXT(m, listq)) != NULL && - next->pindex != m->pindex + 1) - next = NULL; + if ((next = TAILQ_NEXT(m, listq)) != NULL) { + MPASS(next->object == m->object); + if (next->pindex != m->pindex + 1) + next = NULL; + } return (next); } @@ -1345,9 +1347,11 @@ vm_page_prev(vm_page_t m) vm_page_t prev; VM_OBJECT_ASSERT_LOCKED(m->object); - if ((prev = TAILQ_PREV(m, pglist, listq)) != NULL && - prev->pindex != m->pindex - 1) - prev = NULL; + if ((prev = TAILQ_PREV(m, pglist, listq)) != NULL) { + MPASS(prev->object == m->object); + if (prev->pindex != m->pindex - 1) + prev = NULL; + } return (prev); } |