diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -4175,7 +4175,8 @@ if (q->devid == devid && q->type == PCI_QUIRK_MAP_REG) pci_add_map(bus, dev, q->arg1, rl, force, 0); - if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline)) { + if (cfg->intpin > 0 && PCI_INTERRUPT_VALID(cfg->intline) && + (cfg->msi.msi_location == 0) && (cfg->msix.msix_location == 0)) { /* * Try to re-route interrupts. Sometimes the BIOS or * firmware may leave bogus values in these registers.