diff options
Diffstat (limited to 'sys/kern')
| -rw-r--r-- | sys/kern/kern_panic.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/kern/kern_panic.c b/sys/kern/kern_panic.c index d6beccb..1ac9c64 100644 --- a/sys/kern/kern_panic.c +++ b/sys/kern/kern_panic.c @@ -30,10 +30,13 @@ #include <kern/panic.h> #include <kern/serial.h> #include <mu/panic.h> +#include <mu/spinlock.h> #include <lib/string.h> #include <lib/stdarg.h> #include <lib/stdbool.h> +static volatile size_t __sync = 0; + void panic(const char *fmt, ...) { @@ -41,7 +44,7 @@ panic(const char *fmt, ...) static char buf[256]; static va_list ap; - mu_panic_preamble(); + mu_spinlock_acq(&__sync, SPINLOCK_INTTOG); va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); |
