]> 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>
Wed, 11 Oct 2023 23:28:28 +0000 (00:28 +0100)
commit579fae299f1bf76c46f9a3fb880488cb1d24c3e3
tree8211745b724d162a289fde61840836e9df63838e
parenta51e5124a655b3dad80b36b18547cb1eca2c5eb2
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