From 16fe06d875ad1c7c3fe1d704d9285b116c1b0f15 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Mon, 27 Apr 2026 12:48:46 +0200 Subject: [PATCH] device_delete Remove subdevices from global dev hash table --- kernel/device/device.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/device/device.c b/kernel/device/device.c index 136b68d..a2c8618 100644 --- a/kernel/device/device.c +++ b/kernel/device/device.c @@ -135,6 +135,13 @@ void device_delete(const char* key, struct proc* proc, struct reschedule_ctx* rc list_remove(device->subdevices, &subdevice->subdevices_link); + size_t sd_key_len = strlen_null(subdevice->key); + uint32_t sd_hash = hash_fnv32(subdevice->key, sd_key_len); + + hash_delete(&device_table, subdevice->key, sd_key_len, sd_hash, + lengthof(device_table.device_buckets), device_buckets, struct device, + device_table_link, key, found_link); + device->fini(subdevice, proc, rctx); spin_unlock(&subdevice->lock, fsd);