aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-03-10 13:30:36 +0100
committerNatasha Moongrave <natasha@256phi.eu>2026-03-10 13:30:36 +0100
commit3e156cae55172c0d88237c3d396d2fd8f9b98245 (patch)
tree380cca71fc7e7e927dfad0337e68e94774c5c667
parent56e898c9a07f2fd1d618ca514549015dd1bcaa9b (diff)
modified _print() in src/serial.rs to avoid a deadlock by disabling interrupts as long as the Mutex is locked
-rw-r--r--StrixKernel/src/serial.rs12
1 files 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.