From 9971f41f8c4c05e3ba2dec08d9f3b171b5ef6e8d Mon Sep 17 00:00:00 2001 From: Johannes Schlatow Date: Tue, 26 Mar 2024 10:14:48 +0100 Subject: [PATCH] platform/pc: fix IOMMU fault reporting When the kernel does interrupt remapping, we cannot get a non-remapped MSI for fault event interrupts. We therefore let the kernel do the fault reporting in this case. genodelabs/genode#5066 --- repos/pc/src/drivers/platform/pc/intel/io_mmu.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repos/pc/src/drivers/platform/pc/intel/io_mmu.cc b/repos/pc/src/drivers/platform/pc/intel/io_mmu.cc index 7ddb3aa208..31dfcb7b56 100644 --- a/repos/pc/src/drivers/platform/pc/intel/io_mmu.cc +++ b/repos/pc/src/drivers/platform/pc/intel/io_mmu.cc @@ -435,8 +435,8 @@ Intel::Io_mmu::Io_mmu(Env & env, _global_command(false); } - /* enable fault event interrupts */ - if (irq_number) { + /* enable fault event interrupts (if not already enabled by kernel) */ + if (irq_number && !read()) { _fault_irq.construct(_env, irq_number, 0, Irq_session::TYPE_MSI); _fault_irq->sigh(_fault_handler);