diff options
Diffstat (limited to 'kernel/kapi/devices')
| -rw-r--r-- | kernel/kapi/devices/driver_registry.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/kapi/devices/driver_registry.cpp b/kernel/kapi/devices/driver_registry.cpp index 5784694a..2ba9a485 100644 --- a/kernel/kapi/devices/driver_registry.cpp +++ b/kernel/kapi/devices/driver_registry.cpp @@ -105,15 +105,19 @@ namespace kapi::devices for (auto const & candidate : candidates) { + device->bind_driver(candidate.driver_handle); + device->set_state(state::probing); + auto probed = candidate.driver_handle->probe(*device); if (probed) { - device->bind_driver(candidate.driver_handle); device->set_state(state::bound); kstd::println("[OS:DRV] Bound device {} (priority {})", device->name(), candidate.priority); return; } + device->bind_driver(kstd::weak_ptr<driver>{}); + kstd::println(kstd::print_sink::stderr, "[OS:DRV] probe() failed for device {} (priority {}): {}", device->name(), candidate.priority, probed.error().message()); } |
