summaryrefslogtreecommitdiff
path: root/kernel/arch/i386
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-05-02 18:17:51 +0200
committerAnton Kling <anton@kling.gg>2024-05-02 18:35:47 +0200
commit3964ecb4f68654baa9728161446a765734845894 (patch)
tree5d6f131b22dd022dfadbd56d28af1c054ea51362 /kernel/arch/i386
parentad8619ae362b4b626e99b90b1b7c4d7e59125f65 (diff)
Kernel/MMU: Flush TLB after having made allocations
Diffstat (limited to 'kernel/arch/i386')
-rw-r--r--kernel/arch/i386/mmu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/arch/i386/mmu.c b/kernel/arch/i386/mmu.c
index 9802142..bdb4bd6 100644
--- a/kernel/arch/i386/mmu.c
+++ b/kernel/arch/i386/mmu.c
@@ -221,7 +221,7 @@ PageTable *clone_table(u32 src_index, PageDirectory *src_directory,
// Link the table to the new table temporarily
src_directory->tables[i] = new_table;
- src_directory->physical_tables[i] = *physical_address | 0x7;
+ src_directory->physical_tables[i] = *physical_address | 0x3;
PageDirectory *tmp = get_active_pagedirectory();
switch_page_directory(src_directory);
@@ -315,6 +315,7 @@ int mmu_allocate_shared_kernel_region(void *rc, size_t n) {
}
}
}
+ flush_tlb();
return 1;
mmu_allocate_shared_kernel_region_error:
mmu_free_address_range(rc, n, NULL);