diff options
author | Anton Kling <anton@kling.gg> | 2024-05-02 18:17:51 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-05-02 18:35:47 +0200 |
commit | 3964ecb4f68654baa9728161446a765734845894 (patch) | |
tree | 5d6f131b22dd022dfadbd56d28af1c054ea51362 /kernel/arch | |
parent | ad8619ae362b4b626e99b90b1b7c4d7e59125f65 (diff) |
Kernel/MMU: Flush TLB after having made allocations
Diffstat (limited to 'kernel/arch')
-rw-r--r-- | kernel/arch/i386/mmu.c | 3 |
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); |