Commit 899110e3 ("AMD IOMMU: include IOMMU interrupt information in 'M' debug key output") made the AMD IOMMU MSI setup code use more of the generic MSI setup code (as other than for VT-d this is an ordinary MSI-capable PCI device), but failed to notice that till now interrupt setup there _required_ the subsequent affinity setup to be done, as that was the only point where the MSI message would get written. The generic MSI affinity setting routine, however, does only an incremental change, i.e. relies on this setup to have been done before.
In order to not make the code even more clumsy, introduce a new low level helper routine __setup_msi_irq(), thus eliminating the need for the AMD IOMMU code to directly fiddle with the IRQ descriptor.
7a89f62 AMD IOMMU: make interrupt work again
xen/arch/x86/msi.c | 11 +++++++++--
xen/drivers/passthrough/amd/iommu_init.c | 13 ++++++-------
xen/include/asm-x86/msi.h | 3 +++
3 files changed, 18 insertions(+), 9 deletions(-)