x86/apic/vector: Provide MSI parent domain
authorThomas Gleixner <tglx@linutronix.de>
Thu, 24 Nov 2022 23:26:05 +0000 (00:26 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 5 Dec 2022 21:22:33 +0000 (22:22 +0100)
commitb6d5fc3a5245c65f7c83440460a1566d09cc9038
tree6fb8a289f07a3253e51591e30df0422abab8436e
parent15c72f824b32761696b1854500bb3dedccbbb45a
x86/apic/vector: Provide MSI parent domain

Enable MSI parent domain support in the x86 vector domain and fixup the
checks in the iommu implementations to check whether device::msi::domain is
the default MSI parent domain. That keeps the existing logic to protect
e.g. devices behind VMD working.

The interrupt remap PCI/MSI code still works because the underlying vector
domain still provides the same functionality.

None of the other x86 PCI/MSI, e.g. XEN and HyperV, implementations are
affected either. They still work the same way both at the low level and the
PCI/MSI implementations they provide.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221124232326.034672592@linutronix.de
arch/x86/include/asm/msi.h
arch/x86/include/asm/pci.h
arch/x86/kernel/apic/msi.c
drivers/iommu/amd/iommu.c
drivers/iommu/intel/irq_remapping.c