iommm/vt-d: Store irq domain in struct device
authorThomas Gleixner <tglx@linutronix.de>
Wed, 26 Aug 2020 11:16:59 +0000 (13:16 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 16 Sep 2020 14:52:37 +0000 (16:52 +0200)
commit85a8dfc57a0b96785881735e09a61a0fde911ca4
tree24472fd2ff397b6144d2fa175efc3aecc37b1fdd
parent2e4386eba0c0830becc5c88848b765950970533d
iommm/vt-d: Store irq domain in struct device

As a first step to make X86 utilize the direct MSI irq domain operations
store the irq domain pointer in the device struct when a device is probed.

This is done from dmar_pci_bus_add_dev() because it has to work even when
DMA remapping is disabled. It only overrides the irqdomain of devices which
are handled by a regular PCI/MSI irq domain which protects PCI devices
behind special busses like VMD which have their own irq domain.

No functional change. It just avoids the redirection through
arch_*_msi_irqs() and allows the PCI/MSI core to directly invoke the irq
domain alloc/free functions instead of having to look up the irq domain for
every single MSI interupt.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Joerg Roedel <jroedel@suse.de>
Link: https://lore.kernel.org/r/20200826112333.714566121@linutronix.de
drivers/iommu/intel/dmar.c
drivers/iommu/intel/irq_remapping.c
include/linux/intel-iommu.h