printk() disables interrupts.
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 27 Aug 2004 07:17:37 +0000 (07:17 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 27 Aug 2004 07:17:37 +0000 (07:17 +0000)
src/lib/lib.c

index 7112ba20cc50a5525104b112d5f90c1b89d6d2d0..be4397e2239ff16224a7b975bc04e70c7f43a957 100644 (file)
@@ -3,6 +3,7 @@
 #include <stdbool.h>
 #include <stddef.h>
 #include "debug.h"
+#include "interrupt.h"
 #include "lib.h"
 #include "serial.h"
 #include "vga.h"
@@ -128,7 +129,9 @@ output_console (char ch, void *aux __attribute__ ((unused)))
 void
 vprintk (const char *format, va_list args) 
 {
+  enum if_level old_level = intr_disable ();
   vprintf_core (format, args, output_console, NULL);
+  intr_set_level (old_level);
 }
 
 void