1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-13 20:12:06 +00:00
serenity/Kernel/Bus/VirtIO
Liav A ed6c1f53af Kernel/VirtIO: Defer initialization of device out of the constructor
This ensures we safely handle interrupts (which can call virtual
functions), so they don't happen in the constructor - this pattern can
lead to a crash, if we are still in the constructor context because
not all methods are available for usage (some are pure virtual,
so it's possible to call __cxa_pure_virtual).

Also, under some conditions like adding a PCI device via PCI-passthrough
mechanism in QEMU, it became exposed to the eye that the code asserts on
RNG::handle_device_config_change(). That device has no configuration but
if the hypervisor still misbehaves and tries to configure it, we should
simply return false to indicate nothing happened.
2021-09-04 16:36:02 +02:00
..
Console.cpp Kernel/VirtIO: Defer initialization of device out of the constructor 2021-09-04 16:36:02 +02:00
Console.h Kernel/VirtIO: Defer initialization of device out of the constructor 2021-09-04 16:36:02 +02:00
ConsolePort.cpp Kernel/VirtIO: Add two missing error checks in VirtIO::ConsolePort 2021-09-04 13:08:37 +02:00
ConsolePort.h Kernel/VirtIO: Remove redundant VirtIO word from filenames 2021-08-31 16:51:13 +02:00
Device.cpp Kernel/VirtIO: Defer initialization of device out of the constructor 2021-09-04 16:36:02 +02:00
Device.h Kernel/VirtIO: Defer initialization of device out of the constructor 2021-09-04 16:36:02 +02:00
Queue.cpp Kernel/VirtIO: Remove redundant VirtIO word from filenames 2021-08-31 16:51:13 +02:00
Queue.h Kernel/VirtIO: Remove redundant VirtIO word from filenames 2021-08-31 16:51:13 +02:00
RNG.cpp Kernel/VirtIO: Defer initialization of device out of the constructor 2021-09-04 16:36:02 +02:00
RNG.h Kernel/VirtIO: Defer initialization of device out of the constructor 2021-09-04 16:36:02 +02:00