From 09ce611353dd0e59e925989d3a2b339163ff9cd1 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Mon, 21 Aug 2017 10:33:01 +0200 Subject: [PATCH] sel4: free-up virtual regions in core Fixes #2505 --- repos/base-sel4/src/core/core_region_map.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/repos/base-sel4/src/core/core_region_map.cc b/repos/base-sel4/src/core/core_region_map.cc index 9beb5d13f..6b8eb619d 100644 --- a/repos/base-sel4/src/core/core_region_map.cc +++ b/repos/base-sel4/src/core/core_region_map.cc @@ -69,5 +69,12 @@ Core_region_map::attach(Dataspace_capability ds_cap, size_t size, void Core_region_map::detach(Local_addr core_local_addr) { size_t size = platform_specific()->region_alloc_size_at(core_local_addr); - unmap_local(core_local_addr, size >> get_page_size_log2()); + + if (!unmap_local(core_local_addr, size >> get_page_size_log2())) { + Genode::error("could not unmap core virtual address ", + Hex(core_local_addr), " in ", __PRETTY_FUNCTION__); + return; + } + + platform()->region_alloc()->free(core_local_addr); }