summaryrefslogtreecommitdiffstats
path: root/sys/pci/pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/pci/pci.c')
-rw-r--r--sys/pci/pci.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sys/pci/pci.c b/sys/pci/pci.c
index 244fb01..50b7d56 100644
--- a/sys/pci/pci.c
+++ b/sys/pci/pci.c
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: pci.c,v 1.74 1997/05/27 19:24:36 fsmp Exp $
+ * $Id: pci.c,v 1.75 1997/05/28 10:01:03 se Exp $
*
*/
@@ -426,11 +426,22 @@ pci_probebus(int bus)
if (cfg != NULL) {
if (cfg->mfdev)
pcifunchigh = 7;
+ /*
+ * XXX: Temporarily move pci_addcfg() up before
+ * the use of cfg->subordinatebus. This is
+ * necessary, since pci_addcfg() calls the
+ * device's probe(), which may read the bus#
+ * from some device dependent register of
+ * some host to PCI bridges. The probe will
+ * eventually be moved to pci_readcfg(), and
+ * pci_addcfg() will then be moved back down
+ * below the conditional statement ...
+ */
+ pci_addcfg(cfg);
if (bushigh < cfg->subordinatebus)
bushigh = cfg->subordinatebus;
- pci_addcfg(cfg);
cfg = NULL; /* we don't own this anymore ... */
}
}
OpenPOWER on IntegriCloud