1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-20 19:41:00 +00:00
serenity/Kernel
Liav A 666c0c5a08 Kernel/VirtIO: Determine names without PCI access in IRQ context
This is a fix so the VirtIO code doesn't lead to assertion because we
try to determine the name based on the PCI values of the VirtIO device,
because trying to read from the PCI configuration space requires to
acquire a Mutex, which fails in an IRQ context.

To ensure we never encounter a situation when we call a pure virtual
function in an IRQ context, let's make class_name() method to be a
non-pure virtual function, so it can be still called at anytime.
2021-09-08 16:47:01 +02:00
..
ACPI Kernel/ACPI: Return Optional container after table search 2021-09-08 10:27:02 +02:00
API Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
Arch Kernel: Make KBuffer::try_create_with_bytes() return KResultOr 2021-09-07 15:22:24 +02:00
Bus Kernel/VirtIO: Determine names without PCI access in IRQ context 2021-09-08 16:47:01 +02:00
Devices Kernel/Storage: Implement basic AHCI hotplug support 2021-09-08 00:42:20 +02:00
FileSystem Kernel+SystemServer: Simplify the DevTmpFS design 2021-09-08 00:42:20 +02:00
Graphics Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
Heap Kernel: Make kernel region allocators return KResultOr<NOP<Region>> 2021-09-06 01:55:27 +02:00
Interrupts Kernel/ACPI: Return Optional container after table search 2021-09-08 10:27:02 +02:00
Library Kernel: Stop leaking TmpFS inodes 2021-09-07 22:16:25 +02:00
Locking Kernel/Locking: Add lock rank tracking to Spinlock/RecursiveSpinlock 2021-09-07 13:16:01 +02:00
Memory Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel: Remove KBuffer::try_copy() in favor of try_create_with_bytes() 2021-09-07 16:22:29 +02:00
Prekernel Kernel: Don't link Prekernel against libsupc++ 2021-09-08 04:23:17 +00:00
Storage Kernel/Storage: Implement basic AHCI hotplug support 2021-09-08 00:42:20 +02:00
Syscalls Kernel: Rename DevFS => DevTmpFS 2021-09-08 00:42:20 +02:00
Tasks Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00
Time Kernel/ACPI: Return Optional container after table search 2021-09-08 10:27:02 +02:00
TTY Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h AK+Kernel: Print TODO when a TODO() is executed 2021-08-04 11:01:16 +02:00
AtomicEdgeAction.h Kernel: Add AtomicEdgeAction class 2021-07-07 21:57:01 +02:00
BootInfo.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
CMakeLists.txt Kernel: Rename DevFS => DevTmpFS 2021-09-08 00:42:20 +02:00
CMOS.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Kernel/PCI: Turn on memory access by default 2021-09-07 13:47:37 +02:00
CommandLine.h Kernel/PCI: Simplify the entire subsystem 2021-09-07 13:47:37 +02:00
ConsoleDevice.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ConsoleDevice.h Kernel/Devices: Remove required_mode and device_name methods 2021-09-08 00:42:20 +02:00
Coredump.cpp Kernel: Make it possible for KBufferBuilder creation to fail 2021-09-07 15:54:23 +02:00
Coredump.h Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
Debug.h.in Kernel: Verify interrupts are disabled when interacting with Mutexes 2021-08-28 20:53:38 +02:00
DoubleBuffer.cpp Kernel: Remove KBuffer::is_null() and bogus call sites :^) 2021-09-07 16:00:39 +02:00
DoubleBuffer.h Kernel: Make DoubleBuffer::try() return KResultOr 2021-09-07 13:53:14 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel: Rename DevFS => DevTmpFS 2021-09-08 00:42:20 +02:00
FutexQueue.cpp Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
FutexQueue.h Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
GlobalProcessExposed.cpp Kernel: Make PerformanceEventBuffer::to_json() return a KResult 2021-09-07 22:16:25 +02:00
init.cpp Kernel/Storage: Implement basic AHCI hotplug support 2021-09-08 00:42:20 +02:00
IO.h Kernel: Specify I/O size for BMIDEChannel 2021-06-28 15:55:00 +02:00
KBuffer.h Kernel: Remove KBuffer::try_copy() in favor of try_create_with_bytes() 2021-09-07 16:22:29 +02:00
KBufferBuilder.cpp Kernel: Make it possible for KBufferBuilder creation to fail 2021-09-07 15:54:23 +02:00
KBufferBuilder.h Kernel: Make it possible for KBufferBuilder creation to fail 2021-09-07 15:54:23 +02:00
KLexicalPath.cpp Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
KLexicalPath.h Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
kprintf.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
kstdio.h Kernel: Introduce a StringView overload of dbgputstr(..) 2021-08-13 11:08:11 +02:00
KString.cpp Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
KString.h Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
KSyms.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
KSyms.h Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
linker.ld Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
MiniStdLib.cpp Kernel: Build MiniStdLib.cpp in aarch64 builds 2021-09-07 20:15:15 +01:00
mkmap.sh Kernel: Use our toolchain's c++filt tool for the kernel map 2021-07-29 10:38:31 +02:00
Module.h Kernel: Convert KBuffer::copy() => KBuffer::try_copy() 2021-09-07 15:36:39 +02:00
Multiboot.h Prekernel: Export some multiboot parameters in our own BootInfo struct 2021-07-27 13:15:16 +02:00
Panic.cpp Kernel: Track when a thread is in the middle of crashing 2021-09-07 13:16:01 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Make PerformanceEventBuffer::to_json() return a KResult 2021-09-07 22:16:25 +02:00
PerformanceEventBuffer.h Kernel: Make PerformanceEventBuffer::to_json() return a KResult 2021-09-07 22:16:25 +02:00
PerformanceManager.h Kernel: Add syscall performance event type 2021-08-10 21:55:48 +02:00
PhysicalAddress.h Kernel: Move PhysicalPage classes out of the heap into an array 2021-07-08 11:43:34 +02:00
Process.cpp Kernel: Make PerformanceEventBuffer::to_json() return a KResult 2021-09-07 22:16:25 +02:00
Process.h Kernel: Add const variant of Process::perf_events() 2021-09-07 22:16:25 +02:00
ProcessExposed.cpp Kernel: Make it possible for KBufferBuilder creation to fail 2021-09-07 15:54:23 +02:00
ProcessExposed.h Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ProcessGroup.cpp Kernel: Use KResultOr better in ProcessGroup construction 2021-09-06 01:55:27 +02:00
ProcessGroup.h Kernel: Use KResultOr better in ProcessGroup construction 2021-09-06 01:55:27 +02:00
ProcessProcFSTraits.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ProcessSpecificExposed.cpp Kernel: Make PerformanceEventBuffer::to_json() return a KResult 2021-09-07 22:16:25 +02:00
Random.cpp Kernel: Convert random bytes interface to use AK::Bytes 2021-09-01 18:06:14 +02:00
Random.h Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
RTC.cpp Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel/KCOV: Bring closer to typical SerenityOS coding style 2021-09-06 01:55:27 +02:00
Scheduler.cpp Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00
Scheduler.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Sections.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
StdLib.cpp Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
StdLib.h Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
Syscall.cpp Kernel: Declare syscall handlers with "using" instead of "typedef" 2021-09-05 09:48:43 +01:00
Thread.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
Thread.h Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ThreadBlockers.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ThreadTracer.cpp Kernel: Remove unused header includes in root kernel tree 2021-07-11 21:37:38 +02:00
ThreadTracer.h Kernel: Use KResultOr and TRY() for ThreadTracer 2021-09-07 14:48:13 +02:00
TimerQueue.cpp Kernel: Remove a bunch of unused TimerQueue functions 2021-09-07 22:16:25 +02:00
TimerQueue.h Kernel: Remove a bunch of unused TimerQueue functions 2021-09-07 22:16:25 +02:00
UBSanitizer.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
UserOrKernelBuffer.h Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
VirtualAddress.h Kernel: Make VirtualAddress methods constexpr 2021-08-25 12:12:59 +02:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WorkQueue.cpp Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00
WorkQueue.h Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00