fix leakage on mid-level page table when freeing vms
[lunaix-os.git] / lunaix-os / kernel / mm / pmalloc_simple.c
index 230ae1071b0c380f9f7a9a331c8840b70c91ebe3..93fae04fb55945a401ddb20924bda961854757ea 100644 (file)
@@ -127,6 +127,7 @@ pmm_looknext(struct pmem_pool* pool, size_t order)
         page->order = order;
         page->companion = i;
         page->pool = pool->type;
+        page->refs = 0;
         llist_init_head(&page->sibs);
         __set_page_initialized(page);
     }
@@ -162,7 +163,8 @@ pmm_alloc_napot_type(int pool, size_t order, ppage_type_t type)
 }
 
 bool
-pmm_allocator_trymark_onhold(struct pmem_pool* pool, struct ppage* start, struct ppage* end)
+pmm_allocator_trymark_onhold(struct pmem_pool* pool, 
+                             struct ppage* start, struct ppage* end)
 {
     while (start <= end) {
         if (__uninitialized_page(start)) {
@@ -188,7 +190,8 @@ pmm_allocator_trymark_onhold(struct pmem_pool* pool, struct ppage* start, struct
 }
 
 bool
-pmm_allocator_trymark_unhold(struct pmem_pool* pool, struct ppage* start, struct ppage* end)
+pmm_allocator_trymark_unhold(struct pmem_pool* pool, 
+                             struct ppage* start, struct ppage* end)
 {
     while (start <= end) {
         if (!__uninitialized_page(start) && reserved_page(start)) {