From 96d6453ea805c80d0ad20dbcb30ed92be63c0cbb Mon Sep 17 00:00:00 2001 From: Bananymous Date: Fri, 9 Jun 2023 00:34:41 +0300 Subject: [PATCH] Kernel: PageTableScope locks the PageTable before disabling interrupts This allows replacing some PageTableScopes with PageTable::lock() --- kernel/include/kernel/Memory/PageTableScope.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/include/kernel/Memory/PageTableScope.h b/kernel/include/kernel/Memory/PageTableScope.h index 1bb6fdaa19..62955801ea 100644 --- a/kernel/include/kernel/Memory/PageTableScope.h +++ b/kernel/include/kernel/Memory/PageTableScope.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include namespace Kernel @@ -10,7 +11,8 @@ namespace Kernel { public: PageTableScope(PageTable& page_table) - : m_old(PageTable::current()) + : m_guard(page_table) + , m_old(PageTable::current()) , m_temp(page_table) { if (&m_old != &m_temp) @@ -22,6 +24,7 @@ namespace Kernel m_old.load(); } private: + LockGuard m_guard; CriticalScope m_scope; PageTable& m_old; PageTable& m_temp;