--- eisa_machdep_rev_1_37.c	2013-06-04 12:45:55.000000000 +0200
+++ eisa_machdep.c	2013-06-04 14:03:59.000000000 +0200
@@ -106,7 +106,7 @@
 eisa_attach_hook(device_t parent, device_t self,
     struct eisabus_attach_args *eba)
 {
-	extern int eisa_has_been_seen; 
+	extern int eisa_has_been_seen;
 
 	/*
 	 * Notify others that might need to know that the EISA bus
@@ -176,7 +176,6 @@
 	snprintf(irqstr, sizeof(irqstr), "irq %d", ih);
 #endif
 	return (irqstr);
-	
 }
 
 const struct evcnt *
@@ -193,18 +192,22 @@
 {
 	int pin, irq;
 	struct pic *pic;
+#if NIOAPIC > 0
+	struct ioapic_softc *ioapic;
+#endif
 
 	pic = &i8259_pic;
 	pin = irq = ih;
 
 #if NIOAPIC > 0
 	if (ih & APIC_INT_VIA_APIC) {
-		pic = (struct pic *)ioapic_find(APIC_IRQ_APIC(ih));
-		if (pic == NULL) {
-			aprint_error("eisa_intr_establish: bad ioapic %d\n",
+		ioapic = ioapic_find(APIC_IRQ_APIC(ih));
+		if (ioapic == NULL) {
+			aprint_normal("eisa_intr_establish: bad ioapic %d\n",
 			    APIC_IRQ_APIC(ih));
 			return NULL;
 		}
+		pic = &ioapic->sc_pic;
 		pin = APIC_IRQ_PIN(ih);
 		irq = APIC_IRQ_LEGACY_IRQ(ih);
 		if (irq < 0 || irq >= NUM_LEGACY_IRQS)