Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision fef504a2ec75b492fbfc942a4a1caa99b045fd64)
+++ kernel/generic/src/interrupt/interrupt.c	(revision 04e3d9f5693bbe57659a344e3b69cb3484b528c0)
@@ -100,6 +100,4 @@
 NO_TRACE void exc_dispatch(unsigned int n, istate_t *istate)
 {
-	ASSERT(CPU);
-	
 #if (IVT_ITEMS > 0)
 	ASSERT(n < IVT_ITEMS);
@@ -114,12 +112,14 @@
 	
 	/* Account CPU usage if it has waked up from sleep */
-	irq_spinlock_lock(&CPU->lock, false);
-	if (CPU->idle) {
-		uint64_t now = get_cycle();
-		CPU->idle_cycles += now - CPU->last_cycle;
-		CPU->last_cycle = now;
-		CPU->idle = false;
-	}
-	irq_spinlock_unlock(&CPU->lock, false);
+	if (CPU) {
+		irq_spinlock_lock(&CPU->lock, false);
+		if (CPU->idle) {
+			uint64_t now = get_cycle();
+			CPU->idle_cycles += now - CPU->last_cycle;
+			CPU->last_cycle = now;
+			CPU->idle = false;
+		}
+		irq_spinlock_unlock(&CPU->lock, false);
+	}
 	
 	uint64_t begin_cycle = get_cycle();
