1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:27:44 +00:00
serenity/Kernel/Devices
Idan Horowitz ab06a76920 Kernel: Resolve lock-inversion based deadlock in MasterPTY & BlockSet
MasterPTY's double buffer unblock callback would take m_slave's
spinlock and then call evaluate_block_conditions() which would take
BlockerSet's spinlock, while on the other hand, BlockerSet's
add_blocker would take BlockerSet's spinlock, and then call
should_add_blocker, which would call unblock_if_conditions_are_met,
which would then call should_unblock, which will finally call
MasterPTY::can_read() which will take m_slave's spinlock.
Resolve this by moving the call to evaluate_block_conditions() out of
the scope of m_slave's spinlock, as there's no need to hold the lock
while calling it anyways.
2023-12-16 12:55:41 +01:00
..
Audio Kernel/Audio: Fail AC97 probe if no good BAR1 is found 2023-10-03 16:19:03 -06:00
Generic Kernel+Userland: Add option for duration of /dev/beep producing sound 2023-11-03 15:19:33 +01:00
GPU Kernel/Graphics: Don't use [[gnu::packed]] on Bochs VGA structs 2023-12-11 14:46:06 -07:00
HID Kernel/HID: Don't refer to a USB mouse as PS2 2023-11-30 13:30:12 -07:00
Storage Kernel/riscv64: Make the kernel compile 2023-11-10 15:51:31 -07:00
TTY Kernel: Resolve lock-inversion based deadlock in MasterPTY & BlockSet 2023-12-16 12:55:41 +01:00
AsyncDeviceRequest.cpp AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
AsyncDeviceRequest.h Kernel: Hold a weak reference to a Process object in AsyncDeviceRequest 2023-08-20 13:04:42 -06:00
BlockDevice.cpp Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
BlockDevice.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
CharacterDevice.cpp Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
CharacterDevice.h Kernel/Devices: Abstract SysFS Device add/remove methods more properly 2022-07-19 11:02:37 +01:00
Device.cpp Kernel: Get rid of *LockRefPtr in the SysFS filesystem code 2023-04-14 19:24:54 +02:00
Device.h Kernel: Move FileSystem/DeviceFileTypes.h => API/DeviceFileTypes.h 2023-09-07 11:50:50 -06:00
DeviceManagement.cpp Kernel+Services: Enable barebones hot-plug handling capabilities 2023-09-07 11:50:50 -06:00
DeviceManagement.h Kernel+Services: Enable barebones hot-plug handling capabilities 2023-09-07 11:50:50 -06:00
KCOVDevice.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
KCOVDevice.h Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
KCOVInstance.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
KCOVInstance.h Kernel+Userland: Unify declarations for KCOV in Kernel/API/kcov.h 2023-02-24 20:35:45 +01:00
PCISerialDevice.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
PCISerialDevice.h Kernel: Add PCISerialDevice WCH CH351 IDs 2023-08-12 13:08:07 +02:00
SerialDevice.cpp Kernel: Use Processor::wait_check in loops waiting for HW to respond 2023-09-15 11:07:35 -06:00
SerialDevice.h Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00