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 @@ -429,6 +429,10 @@ &pci_enable_mps_tune, 1, "Enable tuning of MPS(maximum payload size)." ); +static bool no_legacy_reroute = false; +SYSCTL_BOOL(_hw_pci, OID_AUTO, no_legacy_reroute, CTLFLAG_RWTUN, + &no_legacy_reroute, 0, "Disable INTx re-routing."); + static int pci_has_quirk(uint32_t devid, int quirk) { @@ -4182,7 +4186,8 @@ * If the re-route fails, then just stick with what we * have. */ - pci_assign_interrupt(bus, dev, 1); + if (! no_legacy_reroute) + pci_assign_interrupt(bus, dev, 1); } if (pci_usb_takeover && pci_get_class(dev) == PCIC_SERIALBUS &&