From 12002c540c9de2342d829c5b073c65cfb4549b35 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 27 Jul 2026 00:08:49 +0200 Subject: kapi: fix driver registry locking --- kernel/kapi/devices/device.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'kernel/kapi/devices/device.cpp') diff --git a/kernel/kapi/devices/device.cpp b/kernel/kapi/devices/device.cpp index 2628e4f4..9c2d8d40 100644 --- a/kernel/kapi/devices/device.cpp +++ b/kernel/kapi/devices/device.cpp @@ -4,6 +4,7 @@ #include #include +#include #include namespace kapi::devices @@ -34,36 +35,43 @@ namespace kapi::devices auto device::parent() const -> kstd::shared_ptr { + auto guard = kstd::lock_guard{m_lock}; return m_parent.lock(); } auto device::state() const noexcept -> enum state { + auto guard = kstd::lock_guard{m_lock}; return m_state; } auto device::set_state(enum state state) -> void { + auto guard = kstd::lock_guard{m_lock}; m_state = state; } auto device::bound_driver() const noexcept -> driver * { + auto guard = kstd::lock_guard{m_lock}; return m_driver.lock().get(); } auto device::bind_driver(kstd::weak_ptr driver) -> void { + auto guard = kstd::lock_guard{m_lock}; m_driver = driver; } - auto device::driver_data() const -> kstd::shared_ptr const & + auto device::driver_data() const -> kstd::shared_ptr { + auto guard = kstd::lock_guard{m_lock}; return m_driver_data; } auto device::set_driver_data(kstd::shared_ptr data) -> void { + auto guard = kstd::lock_guard{m_lock}; m_driver_data = data; } @@ -74,6 +82,7 @@ namespace kapi::devices auto device::set_parent(kstd::weak_ptr parent) -> void { + auto guard = kstd::lock_guard{m_lock}; m_parent = parent; } -- cgit v1.2.3