svn commit: r279471 - stable/10/sys/dev/pci
Ryan Stone
rstone at FreeBSD.org
Sun Mar 1 04:26:49 UTC 2015
Author: rstone
Date: Sun Mar 1 04:26:47 2015
New Revision: 279471
URL: https://svnweb.freebsd.org/changeset/base/279471
Log:
MFC r264091
Correct a PCI enumeration bug introduced in r264011
Ensure that first_func is set to 0 on every iteration of the PCI slot
enumeration loop after the first. There is a continue statement that would
cause first_func to stay at 1 any PCI device where slot 0 has no functions
until we find a slot that does have a function. This would cause us to
not enumerate the first PCI function on the device.
Credit to markj@ for spotting the bug.
X-MFC-With: r264011
Modified:
stable/10/sys/dev/pci/pci.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/pci/pci.c
==============================================================================
--- stable/10/sys/dev/pci/pci.c Sun Mar 1 04:22:06 2015 (r279470)
+++ stable/10/sys/dev/pci/pci.c Sun Mar 1 04:26:47 2015 (r279471)
@@ -3344,7 +3344,7 @@ pci_add_children(device_t dev, int domai
KASSERT(dinfo_size >= sizeof(struct pci_devinfo),
("dinfo_size too small"));
maxslots = PCIB_MAXSLOTS(pcib);
- for (s = 0; s <= maxslots; s++) {
+ for (s = 0; s <= maxslots; s++, first_func = 0) {
pcifunchigh = 0;
f = 0;
DELAY(1);
@@ -3356,9 +3356,6 @@ pci_add_children(device_t dev, int domai
for (f = first_func; f <= pcifunchigh; f++)
pci_identify_function(pcib, dev, domain, busno, s, f,
dinfo_size);
-
- /* For slots after slot 0 we need to check for function 0. */
- first_func = 0;
}
#undef REG
}
More information about the svn-src-stable-10
mailing list