Index: arch/ia32/src/interrupt.c
===================================================================
--- arch/ia32/src/interrupt.c	(revision 0182a665b05ae2297ab7e8df8b00783a840b77e8)
+++ arch/ia32/src/interrupt.c	(revision 8060a24c0b0c44d8b937adcd9a550ba47a5ace5c)
@@ -186,6 +186,6 @@
 static void ipc_int(int n, istate_t *istate)
 {
+	ipc_irq_send_notif(n-IVT_IRQBASE);
 	trap_virtual_eoi();
-	ipc_irq_send_notif(n-IVT_IRQBASE);
 }
 
@@ -196,4 +196,5 @@
 	if (irq == IRQ_CLK)
 		return;
+	trap_virtual_enable_irqs(1 << irq);
 	exc_register(IVT_IRQBASE+irq, "ipc_int", ipc_int);
 }
Index: genarch/src/fb/fb.c
===================================================================
--- genarch/src/fb/fb.c	(revision 0182a665b05ae2297ab7e8df8b00783a840b77e8)
+++ genarch/src/fb/fb.c	(revision 8060a24c0b0c44d8b937adcd9a550ba47a5ace5c)
@@ -371,4 +371,12 @@
 	columns = x / COL_WIDTH;
 
+	sysinfo_set_item_val("fb", NULL, true);
+	sysinfo_set_item_val("fb.kind", NULL, 1);
+	sysinfo_set_item_val("fb.width", NULL, xres);
+	sysinfo_set_item_val("fb.height", NULL, yres);
+	sysinfo_set_item_val("fb.bpp", NULL, bpp);
+	sysinfo_set_item_val("fb.scanline", NULL, scan);
+	sysinfo_set_item_val("fb.address.physical", NULL, addr);
+
 	/* Allocate double buffer */
 	int totsize = scanline * yres;
@@ -406,11 +414,3 @@
 	stdout = &framebuffer;
 	
-	sysinfo_set_item_val("fb", NULL, true);
-	sysinfo_set_item_val("fb.kind", NULL, 1);
-	sysinfo_set_item_val("fb.width", NULL, xres);
-	sysinfo_set_item_val("fb.height", NULL, yres);
-	sysinfo_set_item_val("fb.bpp", NULL, bpp);
-	sysinfo_set_item_val("fb.scanline", NULL, scan);
-	sysinfo_set_item_val("fb.address.physical", NULL, addr);
-
-}
+}
