diff --git a/Kernel/Bus/VirtIO/Console.cpp b/Kernel/Bus/VirtIO/Console.cpp index 08a67f040a..b34b186977 100644 --- a/Kernel/Bus/VirtIO/Console.cpp +++ b/Kernel/Bus/VirtIO/Console.cpp @@ -22,9 +22,7 @@ UNMAP_AFTER_INIT NonnullLockRefPtr Console::must_create(PCI::DeviceIden UNMAP_AFTER_INIT ErrorOr Console::initialize_virtio_resources() { TRY(Device::initialize_virtio_resources()); - auto const* cfg = get_config(VirtIO::ConfigurationType::Device); - if (!cfg) - return Error::from_errno(ENODEV); + auto const* cfg = TRY(get_config(VirtIO::ConfigurationType::Device)); bool success = negotiate_features([&](u64 supported_features) { u64 negotiated = 0; if (is_feature_set(supported_features, VIRTIO_CONSOLE_F_SIZE)) diff --git a/Kernel/Bus/VirtIO/Device.cpp b/Kernel/Bus/VirtIO/Device.cpp index c1d8c08f32..fda0d52062 100644 --- a/Kernel/Bus/VirtIO/Device.cpp +++ b/Kernel/Bus/VirtIO/Device.cpp @@ -151,9 +151,9 @@ UNMAP_AFTER_INIT ErrorOr Device::initialize_virtio_resources() auto mapping_io_window = TRY(IOWindow::create_for_pci_device_bar(device_identifier(), static_cast(cfg.bar))); m_register_bases[cfg.bar] = move(mapping_io_window); } - m_common_cfg = get_config(ConfigurationType::Common, 0); - m_notify_cfg = get_config(ConfigurationType::Notify, 0); - m_isr_cfg = get_config(ConfigurationType::ISR, 0); + m_common_cfg = TRY(get_config(ConfigurationType::Common, 0)); + m_notify_cfg = TRY(get_config(ConfigurationType::Notify, 0)); + m_isr_cfg = TRY(get_config(ConfigurationType::ISR, 0)); } else { auto mapping_io_window = TRY(IOWindow::create_for_pci_device_bar(device_identifier(), PCI::HeaderType0BaseRegister::BAR0)); m_register_bases[0] = move(mapping_io_window); diff --git a/Kernel/Bus/VirtIO/Device.h b/Kernel/Bus/VirtIO/Device.h index cafcb5a38f..582576b78d 100644 --- a/Kernel/Bus/VirtIO/Device.h +++ b/Kernel/Bus/VirtIO/Device.h @@ -30,7 +30,7 @@ protected: virtual StringView class_name() const { return "VirtIO::Device"sv; } explicit Device(PCI::DeviceIdentifier const&); - Configuration const* get_config(ConfigurationType cfg_type, u32 index = 0) const + ErrorOr get_config(ConfigurationType cfg_type, u32 index = 0) const { for (auto const& cfg : m_configs) { if (cfg.cfg_type != cfg_type) @@ -41,7 +41,7 @@ protected: } return &cfg; } - return nullptr; + return Error::from_errno(ENXIO); } template diff --git a/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.cpp b/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.cpp index b122c8bd3d..7db5c318ff 100644 --- a/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.cpp +++ b/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.cpp @@ -146,9 +146,7 @@ VirtIOGraphicsAdapter::VirtIOGraphicsAdapter(PCI::DeviceIdentifier const& device ErrorOr VirtIOGraphicsAdapter::initialize_virtio_resources() { TRY(VirtIO::Device::initialize_virtio_resources()); - auto* config = get_config(VirtIO::ConfigurationType::Device); - if (!config) - return Error::from_errno(ENODEV); + auto* config = TRY(get_config(VirtIO::ConfigurationType::Device)); m_device_configuration = config; bool success = negotiate_features([&](u64 supported_features) { u64 negotiated = 0;