diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index 642fb0b597..ea3de46f73 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -2929,7 +2929,8 @@ unmap_and_free_physical_pages(vm_translation_map* map, addr_t start, addr_t end) if (map->ops->query(map, current, &physicalAddress, &flags) == B_OK && (flags & PAGE_PRESENT) != 0) { vm_page* page = vm_lookup_page(physicalAddress / B_PAGE_SIZE); - if (page != NULL) { + if (page != NULL && page->state != PAGE_STATE_FREE + && page->state != PAGE_STATE_CLEAR) { DEBUG_PAGE_ACCESS_START(page); vm_page_set_state(page, PAGE_STATE_FREE); }