Use a big-lock for kernel sychronization instead of fine-grained locking
All checks were successful
Build ISO image / build-and-deploy (push) Successful in 2m21s
Build documentation / build-and-deploy (push) Successful in 54s

This commit is contained in:
2026-04-27 18:06:02 +02:00
parent 68cdd8d6d2
commit e5ebd7f3ba
56 changed files with 212 additions and 1206 deletions

View File

@@ -116,24 +116,16 @@ DEFINE_DEVICE_OP(ramdrv_write) {
}
DEFINE_DEVICE_OP(ramdrv_partition_rescan) {
uint64_t fsd;
struct list_node_link *subdevice_link, *tmp_subdevice_link;
list_foreach(device->subdevices, subdevice_link, tmp_subdevice_link) {
struct device* subdevice = list_entry(subdevice_link, struct device, subdevices_link);
spin_lock(&subdevice->lock, &fsd);
list_remove(device->subdevices, &subdevice->subdevices_link);
spin_unlock(&subdevice->lock, fsd);
device_delete(subdevice->key, proc, rctx);
}
spin_unlock(&device->lock, *lockflags);
int r = device_probe_partitions(proc, rctx, device);
spin_lock(&device->lock, lockflags);
return r;
}