diff --git a/Kernel/Bus/PCI/Controller/HostBridge.cpp b/Kernel/Bus/PCI/Controller/HostBridge.cpp index 0535195cc9..1803637293 100644 --- a/Kernel/Bus/PCI/Controller/HostBridge.cpp +++ b/Kernel/Bus/PCI/Controller/HostBridge.cpp @@ -109,19 +109,22 @@ UNMAP_AFTER_INIT void HostBridge::enumerate_attached_devices(Function::addition_would_overflow(m_domain.start_bus(), bus_as_function_number)) + break; + if (m_enumerated_buses.get(m_domain.start_bus() + bus_as_function_number)) continue; - enumerate_bus(callback, bus_as_function_number, false); - m_enumerated_buses.set(bus_as_function_number, true); + enumerate_bus(callback, m_domain.start_bus() + bus_as_function_number, false); + m_enumerated_buses.set(m_domain.start_bus() + bus_as_function_number, true); } } }