git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix leakage on mid-level page table when freeing vms
[lunaix-os.git]
/
lunaix-os
/
kernel
/
mm
/
mmap.c
diff --git
a/lunaix-os/kernel/mm/mmap.c
b/lunaix-os/kernel/mm/mmap.c
index 972bbee150b80bfdbca41bd41a1489d6852b76f3..ff9e538668cf2206a2563ffaa78bbcc8c979981b 100644
(file)
--- a/
lunaix-os/kernel/mm/mmap.c
+++ b/
lunaix-os/kernel/mm/mmap.c
@@
-5,7
+5,7
@@
#include <lunaix/syscall.h>
#include <lunaix/syscall_utils.h>
#include <lunaix/syscall.h>
#include <lunaix/syscall_utils.h>
-#include <
sys/m
m/mm_defs.h>
+#include <
as
m/mm_defs.h>
#include <usr/lunaix/mann_flags.h>
#include <usr/lunaix/mann_flags.h>
@@
-349,9
+349,7
@@
mem_unmap_region(ptr_t mnt, struct mm_region* region)
pfn_t pglen = leaf_count(region->end - region->start);
mem_sync_pages(mnt, region, region->start, pglen * PAGE_SIZE, 0);
pfn_t pglen = leaf_count(region->end - region->start);
mem_sync_pages(mnt, region, region->start, pglen * PAGE_SIZE, 0);
- pte_t* ptep = mkptep_va(mnt, region->start);
- __remove_ranged_mappings(ptep, pglen);
-
+ procvm_prune_vmr(mnt, region);
tlb_flush_vmr_all(region);
llist_delete(®ion->head);
tlb_flush_vmr_all(region);
llist_delete(®ion->head);