for (i = 0; i < 16; i++) {
                int idx;
 
+               mp_irqs[mp_irq_entries].mp_type = MP_INTSRC;
+               mp_irqs[mp_irq_entries].mp_irqflag = 0; /* Conforming */
+               mp_irqs[mp_irq_entries].mp_srcbus = MP_ISA_BUS;
+               mp_irqs[mp_irq_entries].mp_dstapic = mp_ioapics[ioapic].mp_apicid;
+
                for (idx = 0; idx < mp_irq_entries; idx++) {
                        struct mp_config_intsrc *irq = mp_irqs + idx;
 
                        continue;       /* IRQ already used */
                }
 
-               mp_irqs[mp_irq_entries].mp_type = MP_INTSRC;
-               mp_irqs[mp_irq_entries].mp_irqflag = 0; /* Conforming */
-               mp_irqs[mp_irq_entries].mp_srcbus = MP_ISA_BUS;
-               mp_irqs[mp_irq_entries].mp_dstapic = mp_ioapics[ioapic].mp_apicid;
                mp_irqs[mp_irq_entries].mp_irqtype = mp_INT;
                mp_irqs[mp_irq_entries].mp_srcbusirq = i;       /* Identity mapped */
                mp_irqs[mp_irq_entries].mp_dstirq = i;