Index: kernel/arch/mips32/src/mach/malta/malta.c
===================================================================
--- kernel/arch/mips32/src/mach/malta/malta.c	(revision ef56a4328da1ed71522c868067e6224662037a28)
+++ kernel/arch/mips32/src/mach/malta/malta.c	(revision fd67c9f8dcdd34e9ee9ae504ae566e0d47cebb67)
@@ -74,12 +74,9 @@
 {
 	uint8_t isa_irq = host2uint32_t_le(pio_read_32(GT64120_PCI0_INTACK));
-	if (isa_irq == PIC0_SPURIOUS_IRQ || isa_irq == PIC1_SPURIOUS_IRQ) {
-		/*
-		 * XXX: Examine ISR to figure out whether this is indeed a
-		 *      spurious or actual IRQ.
-		 */
+	if (pic_is_spurious(isa_irq)) {
+		pic_handle_spurious(isa_irq);
 #ifdef CONFIG_DEBUG
-		log(LF_ARCH, LVL_DEBUG, "cpu%u: PIC spurious interrupt",
-		    CPU->id);
+		log(LF_ARCH, LVL_DEBUG, "cpu%u: PIC spurious interrupt %u",
+		    CPU->id, isa_irq);
 		return;
 #endif
@@ -91,5 +88,5 @@
 	} else {
 #ifdef CONFIG_DEBUG
-		log(LF_ARCH, LVL_DEBUG, "cpu%u: spurious IRQ (irq=%u)",
+		log(LF_ARCH, LVL_DEBUG, "cpu%u: unhandled IRQ (irq=%u)",
 		    CPU->id, isa_irq);
 #endif
