Index: kernel/arch/ia32/src/drivers/i8254.c
===================================================================
--- kernel/arch/ia32/src/drivers/i8254.c	(revision 80bcaed11c2e767559657092d6c13d1a7fdd449c)
+++ kernel/arch/ia32/src/drivers/i8254.c	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -69,5 +69,13 @@
 static void i8254_irq_handler(irq_t *irq, void *arg, ...)
 {
+	/*
+	 * This IRQ is responsible for kernel preemption.
+	 * Nevertheless, we are now holding a spinlock which prevents
+	 * preemption. For this particular IRQ, we don't need the
+	 * lock. We just release it, call clock() and then reacquire it again.
+	 */
+	spinlock_unlock(&irq->lock);
 	clock();
+	spinlock_lock(&irq->lock);
 }
 
@@ -137,5 +145,7 @@
 	o2 |= inb(CLK_PORT1) << 8;
 
-	CPU->delay_loop_const = ((MAGIC_NUMBER*LOOPS)/1000) / ((t1-t2)-(o1-o2)) + (((MAGIC_NUMBER*LOOPS)/1000) % ((t1-t2)-(o1-o2)) ? 1 : 0);
+	CPU->delay_loop_const =
+	    ((MAGIC_NUMBER * LOOPS) / 1000) / ((t1 - t2) - (o1 - o2)) +
+	    (((MAGIC_NUMBER * LOOPS) / 1000) % ((t1 - t2) - (o1 - o2)) ? 1 : 0);
 
 	clk1 = get_cycle();
Index: kernel/arch/ia32/src/drivers/i8259.c
===================================================================
--- kernel/arch/ia32/src/drivers/i8259.c	(revision 80bcaed11c2e767559657092d6c13d1a7fdd449c)
+++ kernel/arch/ia32/src/drivers/i8259.c	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -87,5 +87,5 @@
 
 	pic_disable_irqs(0xffff);		/* disable all irq's */
-	pic_enable_irqs(1<<IRQ_PIC1);		/* but enable pic1 */
+	pic_enable_irqs(1 << IRQ_PIC1);		/* but enable pic1 */
 }
 
@@ -120,6 +120,6 @@
 void pic_eoi(void)
 {
-	outb(0x20,0x20);
-	outb(0xa0,0x20);
+	outb(0x20, 0x20);
+	outb(0xa0, 0x20);
 }
 
Index: kernel/arch/ia32/src/ia32.c
===================================================================
--- kernel/arch/ia32/src/ia32.c	(revision 80bcaed11c2e767559657092d6c13d1a7fdd449c)
+++ kernel/arch/ia32/src/ia32.c	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -119,7 +119,7 @@
 		memory_print_map();
 		
-		#ifdef CONFIG_SMP
+#ifdef CONFIG_SMP
 		acpi_init();
-		#endif /* CONFIG_SMP */
+#endif /* CONFIG_SMP */
 	}
 }
Index: kernel/arch/ia32/src/interrupt.c
===================================================================
--- kernel/arch/ia32/src/interrupt.c	(revision 80bcaed11c2e767559657092d6c13d1a7fdd449c)
+++ kernel/arch/ia32/src/interrupt.c	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -141,11 +141,10 @@
 {
 	uint32_t mxcsr;
-	asm
-	(
+	asm (
 		"stmxcsr %0;\n"
 		:"=m"(mxcsr)
 	);
 	fault_if_from_uspace(istate, "SIMD FP exception(19), MXCSR: %#zx",
-			     (unative_t)mxcsr);
+	    (unative_t)mxcsr);
 
 	decode_istate(istate);
Index: kernel/arch/ia32/src/smp/smp.c
===================================================================
--- kernel/arch/ia32/src/smp/smp.c	(revision 80bcaed11c2e767559657092d6c13d1a7fdd449c)
+++ kernel/arch/ia32/src/smp/smp.c	(revision 8ecb3067403118be4ab8be6d777ffa06ca2299bf)
@@ -113,6 +113,6 @@
 	 * Set the warm-reset vector to the real-mode address of 4K-aligned ap_boot()
 	 */
-	*((uint16_t *) (PA2KA(0x467+0))) =  ((uintptr_t) ap_boot) >> 4;	/* segment */
-	*((uint16_t *) (PA2KA(0x467+2))) =  0;				/* offset */
+	*((uint16_t *) (PA2KA(0x467 + 0))) =  ((uintptr_t) ap_boot) >> 4;	/* segment */
+	*((uint16_t *) (PA2KA(0x467 + 2))) =  0;				/* offset */
 	
 	/*
@@ -120,6 +120,6 @@
 	 * BIOS will not do the POST after the INIT signal.
 	 */
-	outb(0x70,0xf);
-	outb(0x71,0xa);
+	outb(0x70, 0xf);
+	outb(0x71, 0xa);
 
 	pic_disable_irqs(0xffff);
