On Saturday, June 06, 2015 03:51:12 PM Marcel Moolenaar wrote: > Author: marcel > Date: Sat Jun 6 15:51:11 2015 > New Revision: 284078 > URL: https://svnweb.freebsd.org/changeset/base/284078 > > Log: > Don't return -10000 as the probe priority. That's lower than what > BUS_PROBE_HOOVER is. Drivers like proto(4), when compiled into the > kernel or preloaded, will render your system useless by virtue of > attaching to your PCI busses. > > Return BUS_PROBE_GENERIC instead. It's just the next priority up > from BUS_PROBE_HOOVER. No other meaning has been give to its use. > While BUS_PROBE_DEFAULT seems like a better candidate, it's hard > not to think that there must be some reason why these drivers > return -10000 in the first place.
BUS_PROBE_DEFAULT would conflict with other drivers that are supposed to override these, such as acpi_pcib_pci which should override pci_pci for PCI-PCI bridges in the ACPI namespace. That driver currently hardcodes -1000 itself. :-/ Then there's pcibios_pcib_probe for the $PIR PCI-PCI bridge driver for when ACPI isn't present. It returns -2000. The MPTable PCI-PCI bridge driver returns -1000 like ACPI. That relative order (ACPI and MPTable are most preferred, then $PIR, then generic PCI-PCI) is important for PCI INTx interrupt routing on x86. In general any platform which knows better how to route INTx interrupts than the swizzle defined for add-on cards that pci_pci uses should override the pci_pci driver via a higher probe value. In this case simply using the stock BUS_PROBE values doesn't quite work since there isn't just DEFAULT/GENERIC, but on x86 you have at least three levels. Also, BUS_PROBE_GENERIC does have a meaning and it is well suited to these drivers. It is for drivers that match large classes of devices rather than specific devices. In PCI terms that would mean a device that matches on class/subclass rather than vendor/device ID (which is true of these bridge drivers. ignore_pci is a different animal). -- John Baldwin _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"