From ae90a8a10d00af2bbbc48b3d976bfe66a64c70b9 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Fri, 13 Dec 2024 00:02:24 +0100 Subject: [PATCH] platform/pc: be robust on IOMMU claiming Issue #5406 --- repos/pc/src/driver/platform/pc/intel/io_mmu.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/repos/pc/src/driver/platform/pc/intel/io_mmu.h b/repos/pc/src/driver/platform/pc/intel/io_mmu.h index e166ea3cc6..4ebabe7d9a 100644 --- a/repos/pc/src/driver/platform/pc/intel/io_mmu.h +++ b/repos/pc/src/driver/platform/pc/intel/io_mmu.h @@ -704,9 +704,13 @@ class Intel::Io_mmu_factory : public Driver::Io_mmu_factory device.for_each_io_mem([&] (unsigned idx, Range range, Device::Pci_bar, bool) { - if (idx == 0) - new (alloc) Intel::Io_mmu(_env, io_mmu_devices, device.name(), - range, _table_allocator, irq_number); + try { + if (idx == 0) + new (alloc) Intel::Io_mmu(_env, io_mmu_devices, device.name(), + range, _table_allocator, irq_number); + } catch (...) { + error("Intel::Io_mmu failed to initialize - ", device.name()); + } }); } };