]> www.infradead.org Git - users/dwmw2/qemu.git/commit
intel-iommu: Report interrupt remapping faults, fix return value
authorDavid Woodhouse <dwmw@amazon.co.uk>
Fri, 10 Mar 2023 17:37:03 +0000 (17:37 +0000)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Mon, 16 Oct 2023 08:47:40 +0000 (09:47 +0100)
commit459c26f99d09ee62d49bef001840bbbdc0462bb2
tree7c01d06f40b58cebba3980aeec8f0018242dc502
parent63011373ad22c794a013da69663c03f1297a5c56
intel-iommu: Report interrupt remapping faults, fix return value

A generic X86IOMMUClass->int_remap function should not return VT-d
specific values; fix it to return 0 if the interrupt was successfully
translated or -EINVAL if not.

The VTD_FR_IR_xxx values are supposed to be used to actually raise
faults through the fault reporting mechanism, so do that instead for
the case where the IRQ is actually being injected.

There is more work to be done here, as pretranslations for the KVM IRQ
routing table can't fault; an untranslatable IRQ should be handled in
userspace and the fault raised only when the IRQ actually happens (if
indeed the IRTE is still not valid at that time). But we can work on
that later; we can at least raise faults for the direct case.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Acked-by: Peter Xu <peterx@redhat.com>
hw/i386/intel_iommu.c
hw/i386/intel_iommu_internal.h