diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-03-10 13:30:36 +0100 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-03-10 13:30:36 +0100 |
| commit | 3e156cae55172c0d88237c3d396d2fd8f9b98245 (patch) | |
| tree | 380cca71fc7e7e927dfad0337e68e94774c5c667 | |
| parent | 56e898c9a07f2fd1d618ca514549015dd1bcaa9b (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.rs | 12 |
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. |
