diff options
Diffstat (limited to 'src/devices')
-rw-r--r-- | src/devices/pci_device.c | 8 |
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; |