aboutsummaryrefslogtreecommitdiff
path: root/src/vmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vmem.c')
-rw-r--r--src/vmem.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/vmem.c b/src/vmem.c
index 76e0ece..afdac95 100644
--- a/src/vmem.c
+++ b/src/vmem.c
@@ -12,6 +12,7 @@
#include <kmi/panic.h>
#include <kmi/debug.h>
#include <kmi/bits.h>
+#include <kmi/dmem.h>
#include <kmi/vmem.h>
#include <arch/vmem.h>
@@ -197,6 +198,14 @@ static void __free_mapping(struct tcb *t, struct mem_region *m)
if (is_set(m->flags, MR_NONBACKED))
return;
+ if (is_set(m->flags, MR_DEV)) {
+ stat_t ret = free_known_devmem(t, m);
+ MAYBE_UNUSED(ret);
+
+ assert(ret == OK);
+ return;
+ }
+
pm_t start = __addr(m->start);
pm_t end = __addr(m->end);
size_t size = end - start;