From a866fa94667cd2f1432ee61194eeab36a7883e8a Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 3 May 2009 12:37:51 +0000 Subject: [PATCH] panic() when a page that is still mapped is freed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30606 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/vm/vm_page.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/vm/vm_page.cpp b/src/system/kernel/vm/vm_page.cpp index b6eb259536..82c0e80611 100644 --- a/src/system/kernel/vm/vm_page.cpp +++ b/src/system/kernel/vm/vm_page.cpp @@ -770,8 +770,12 @@ set_page_state_nolock(vm_page *page, int pageState) if (sPageDeficit > 0) sFreePageCondition.NotifyOne(); - if (pageState != PAGE_STATE_INACTIVE && page->cache != NULL) - panic("to be freed page %p has cache", page); + if (pageState != PAGE_STATE_INACTIVE) { + if (page->cache != NULL) + panic("to be freed page %p has cache", page); + if (!page->mappings.IsEmpty() || page->wired_count > 0) + panic("to be freed page %p has mappings", page); + } } if (page->cache != NULL && page->cache->temporary) { if (pageState == PAGE_STATE_MODIFIED)