aboutsummaryrefslogtreecommitdiff
path: root/kernel/mm/virtual_mm/virtual_mm.c
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-01-22 05:23:37 -0500
committerRaghuram Subramani <raghus2247@gmail.com>2025-01-22 05:23:37 -0500
commit349911f3af71f7974de583a86d2133b87aa16ea7 (patch)
tree713da711a4e861b892b88752056d9f8ceeb8ad9b /kernel/mm/virtual_mm/virtual_mm.c
parent7a594b8bd49ee3c9809a4dda661f1ab85ad84ee6 (diff)
physical_mm: Spinlock the memory bitmap
Diffstat (limited to 'kernel/mm/virtual_mm/virtual_mm.c')
-rw-r--r--kernel/mm/virtual_mm/virtual_mm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/mm/virtual_mm/virtual_mm.c b/kernel/mm/virtual_mm/virtual_mm.c
index c69d194..9c239a1 100644
--- a/kernel/mm/virtual_mm/virtual_mm.c
+++ b/kernel/mm/virtual_mm/virtual_mm.c
@@ -107,6 +107,9 @@ virtual_mm_map_page(void *physical_address, void *virtual_address)
table = (uint32_t *) PDE_GET_TABLE(pd_entry);
uint32_t *pt_entry = &table[GET_PTE_FRAME(virtual_address)];
+ if (PTE_IS_PRESENT(pt_entry))
+ ASSERT_NOT_REACHED(); /* TODO: Mapping previously mapped memory */
+
*pt_entry = PTE_FRAME((uint32_t) physical_address) | PTE_PRESENT(1)
| PTE_WRITABLE(1);
}