Really make it safe to call printf() from any context.
[pintos-anon] / src / devices / kbd.c
index ea9835876a53626e11d00d663e92b7501c4ba157..9cd28400864abddcc1a18fa586eaf5951d9a96bb 100644 (file)
@@ -40,11 +40,12 @@ kbd_init (void)
 uint8_t
 kbd_getc (void) 
 {
+  enum intr_level old_level;
   uint8_t key;
-  
-  intq_lock (&buffer);
+
+  old_level = intr_disable ();
   key = intq_getc (&buffer);
-  intq_unlock (&buffer);
+  intr_set_level (old_level);
   
   return key;
 }