From d249b5df8f03949040f5a4ddfe5b2f7b9b4b1740 Mon Sep 17 00:00:00 2001 From: Tom Date: Sun, 28 Jun 2020 16:04:14 -0600 Subject: [PATCH] Kernel: Protect Console with SpinLock --- Kernel/Console.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Kernel/Console.cpp b/Kernel/Console.cpp index 9f91261961..cf38867cf0 100644 --- a/Kernel/Console.cpp +++ b/Kernel/Console.cpp @@ -27,11 +27,13 @@ #include #include #include +#include // Bytes output to 0xE9 end up on the Bochs console. It's very handy. #define CONSOLE_OUT_TO_E9 static Console* s_the; +static Kernel::SpinLock g_console_lock; Console& Console::the() { @@ -77,6 +79,7 @@ ssize_t Console::write(Kernel::FileDescription&, size_t, const u8* data, ssize_t void Console::put_char(char ch) { + Kernel::ScopedSpinLock lock(g_console_lock); #ifdef CONSOLE_OUT_TO_E9 //if (ch != 27) IO::out8(0xe9, ch);