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
This commit is contained in:
Johannes Schlatow 2024-03-26 10:14:48 +01:00 committed by Christian Helmuth
parent c54e8ec3e2
commit 9971f41f8c

View File

@ -435,8 +435,8 @@ Intel::Io_mmu::Io_mmu(Env & env,
_global_command<Global_command::Qie>(false);
}
/* enable fault event interrupts */
if (irq_number) {
/* enable fault event interrupts (if not already enabled by kernel) */
if (irq_number && !read<Global_status::Ires>()) {
_fault_irq.construct(_env, irq_number, 0, Irq_session::TYPE_MSI);
_fault_irq->sigh(_fault_handler);