@@ -292,7 +292,7 @@ static inline dword_t free_page(void *virtual)
unmap_page(virtual);
page_t *page = get_page(phys);
- if (page == NULL || page->ref_count == 0) free_physical_page(phys);
+ if (page != NULL && page->ref_count > 0) free_physical_page(phys);
return ERR_SUCCESS;
}