Index: kernel/arch/ia64/src/ski/ski.c
===================================================================
--- kernel/arch/ia64/src/ski/ski.c	(revision 80ca47ec494fe784edd1700f9ebacc597962a7e3)
+++ kernel/arch/ia64/src/ski/ski.c	(revision 3dea17f5a2dc97de65bf1ff23eb43f3621665af4)
@@ -242,11 +242,19 @@
 void ski_kbd_grab(void)
 {
+	ipl_t ipl = interrupts_disable();
+	spinlock_lock(&ski_kbd_irq.lock);
 	ski_kbd_irq.notif_cfg.notify = false;
+	spinlock_unlock(&ski_kbd_irq.lock);
+	interrupts_restore(ipl);
 }
 
 void ski_kbd_release(void)
 {
+	ipl_t ipl = interrupts_disable();
+	spinlock_lock(&ski_kbd_irq.lock);
 	if (ski_kbd_irq.notif_cfg.answerbox)
 		ski_kbd_irq.notif_cfg.notify = true;
+	spinlock_unlock(&ski_kbd_irq.lock);
+	interrupts_restore(ipl);
 }
 
Index: kernel/arch/mips32/src/drivers/msim.c
===================================================================
--- kernel/arch/mips32/src/drivers/msim.c	(revision 80ca47ec494fe784edd1700f9ebacc597962a7e3)
+++ kernel/arch/mips32/src/drivers/msim.c	(revision 3dea17f5a2dc97de65bf1ff23eb43f3621665af4)
@@ -121,11 +121,19 @@
 void msim_kbd_grab(void)
 {
+	ipl_t ipl = interrupts_disable();
+	spinlock_lock(&msim_irq.lock);
 	msim_irq.notif_cfg.notify = false;
+	spinlock_unlock(&msim_irq.lock);
+	interrupts_restore(ipl);
 }
 
 void msim_kbd_release(void)
 {
+	ipl_t ipl = interrupts_disable();
+	spinlock_lock(&msim_irq.lock);
 	if (msim_irq.notif_cfg.answerbox)
 		msim_irq.notif_cfg.notify = true;
+	spinlock_unlock(&msim_irq.lock);
+	interrupts_restore(ipl);
 }
 
Index: kernel/arch/ppc32/src/drivers/cuda.c
===================================================================
--- kernel/arch/ppc32/src/drivers/cuda.c	(revision 80ca47ec494fe784edd1700f9ebacc597962a7e3)
+++ kernel/arch/ppc32/src/drivers/cuda.c	(revision 3dea17f5a2dc97de65bf1ff23eb43f3621665af4)
@@ -274,5 +274,9 @@
 void cuda_grab(void)
 {
+	ipl_t ipl = interrupts_disable();
+	spinlock_lock(&cuda_irq.lock);
 	cuda_irq.notif_cfg.notify = false;
+	spinlock_unlock(&cuda_irq.lock);
+	interrupts_restore(ipl);
 }
 
@@ -281,6 +285,10 @@
 void cuda_release(void)
 {
+	ipl_t ipl = interrupts_disable();
+	spinlock_lock(&cuda_irq.lock);
 	if (cuda_irq.notif_cfg.answerbox)
 		cuda_irq.notif_cfg.notify = true;
+	spinlock_unlock(&cuda_irq.unlock);
+	interrupts_restore(ipl);
 }
 
Index: kernel/arch/ppc32/src/drivers/pic.c
===================================================================
--- kernel/arch/ppc32/src/drivers/pic.c	(revision 80ca47ec494fe784edd1700f9ebacc597962a7e3)
+++ kernel/arch/ppc32/src/drivers/pic.c	(revision 3dea17f5a2dc97de65bf1ff23eb43f3621665af4)
@@ -46,6 +46,4 @@
 }
 
-
-
 void pic_enable_interrupt(int intnum)
 {
