Add missing TLB flushes.

This commit is contained in:
Andreas Kling 2018-10-23 13:03:11 +02:00
commit d133a2845f
Notes: sideshowbarker 2024-07-19 18:44:43 +09:00

View file

@ -93,6 +93,7 @@ void MemoryManager::protectMap(LinearAddress linearAddress, size_t length)
pte.setPresent(false); pte.setPresent(false);
pte.setWritable(false); pte.setWritable(false);
} }
flushTLB();
} }
void MemoryManager::identityMap(LinearAddress linearAddress, size_t length) void MemoryManager::identityMap(LinearAddress linearAddress, size_t length)
@ -106,6 +107,7 @@ void MemoryManager::identityMap(LinearAddress linearAddress, size_t length)
pte.setPresent(true); pte.setPresent(true);
pte.setWritable(true); pte.setWritable(true);
} }
flushTLB();
} }
void MemoryManager::initialize() void MemoryManager::initialize()
@ -153,6 +155,7 @@ byte* MemoryManager::quickMapOnePage(PhysicalAddress physicalAddress)
pte.setPhysicalPageBase(physicalAddress.pageBase()); pte.setPhysicalPageBase(physicalAddress.pageBase());
pte.setPresent(true); pte.setPresent(true);
pte.setWritable(true); pte.setWritable(true);
flushTLB();
return (byte*)(4 * MB); return (byte*)(4 * MB);
} }