summaryrefslogtreecommitdiff
path: root/src/devices/pci_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/pci_device.c')
-rw-r--r--src/devices/pci_device.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c
index 4a9fa1466e..16e8d3f203 100644
--- a/src/devices/pci_device.c
+++ b/src/devices/pci_device.c
@@ -1019,6 +1019,14 @@ unsigned int pci_scan_bus(struct bus *bus,
printk(BIOS_DEBUG, "PCI: pci_scan_bus for bus %02x\n", bus->secondary);
#endif
+ // Maximum sane devfn is 0xFF
+ if (max_devfn > 0xff) {
+ printk(BIOS_ERR, "PCI: pci_scan_bus limits devfn %x - devfn %x\n",
+ min_devfn, max_devfn );
+ printk(BIOS_ERR, "PCI: pci_scan_bus upper limit too big. Using 0xff.\n");
+ max_devfn=0xff;
+ }
+
old_devices = bus->children;
bus->children = NULL;