From 3e156cae55172c0d88237c3d396d2fd8f9b98245 Mon Sep 17 00:00:00 2001 From: Natasha Moongrave Date: Tue, 10 Mar 2026 13:30:36 +0100 Subject: modified _print() in src/serial.rs to avoid a deadlock by disabling interrupts as long as the Mutex is locked --- StrixKernel/src/serial.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/StrixKernel/src/serial.rs b/StrixKernel/src/serial.rs index e8807df..65596c3 100644 --- a/StrixKernel/src/serial.rs +++ b/StrixKernel/src/serial.rs @@ -13,10 +13,14 @@ lazy_static! { #[doc(hidden)] pub fn _print(args: ::core::fmt::Arguments) { use core::fmt::Write; - SERIAL1 - .lock() - .write_fmt(args) - .expect("Printing to serial failed"); + use x86_64::instructions::interrupts; + + interrupts::without_interrupts(|| { + SERIAL1 + .lock() + .write_fmt(args) + .expect("Printing to serial failed"); + }); } /// Prints to the host through the serial interface. -- cgit v1.2.3