Index: sys/x86/x86/msi.c =================================================================== --- sys/x86/x86/msi.c +++ sys/x86/x86/msi.c @@ -246,7 +246,7 @@ struct msi_intsrc *sib, *msi = (struct msi_intsrc *)isrc; int old_vector; u_int old_id; - int i, vector; + int error, i, vector; /* * Only allow CPUs to be assigned to the first message for an @@ -305,8 +305,11 @@ "msi: Assigning MSI IRQ %d to local APIC %u vector %u\n", sib->msi_irq, sib->msi_cpu, sib->msi_vector); } - BUS_REMAP_INTR(device_get_parent(msi->msi_dev), msi->msi_dev, + error = BUS_REMAP_INTR(device_get_parent(msi->msi_dev), msi->msi_dev, msi->msi_irq); + if (error != 0) + printf("%s: error %d from BUS_REMAP_INTR for irq %u\n", + __func__, error, msi->msi_irq); /* * Free the old vector after the new one is established. This is done