]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[pci] Avoid scanning nonexistent buses when using PCIAPI_DIRECT
authorMichael Brown <mcb30@ipxe.org>
Sat, 10 Apr 2021 12:14:30 +0000 (13:14 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sat, 10 Apr 2021 14:05:05 +0000 (15:05 +0100)
commit0be8491b717fec6697dbf6ef8ac07604e062ecb1
tree1f5d84a13dbd6113e7e884a2795e6e01cdda3a31
parentc0346dbb49de0bb6c7637c511a175ce478aca9b9
[pci] Avoid scanning nonexistent buses when using PCIAPI_DIRECT

There is no method for obtaining the number of PCI buses when using
PCIAPI_DIRECT, and we therefore currently scan all possible bus
numbers.  This can cause a several-second startup delay in some
virtualised environments, since PCI configuration space access will
necessarily require the involvement of the hypervisor.

Ameliorate this situation by defaulting to scanning only a single bus,
and expanding the number of PCI buses to accommodate any subordinate
buses that are detected during enumeration.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/x86/include/ipxe/pcidirect.h
src/drivers/bus/pci.c
src/include/ipxe/pci.h