x86/pci: Set default irq domain in pcibios_add_device()
authorThomas Gleixner <tglx@linutronix.de>
Wed, 26 Aug 2020 11:17:01 +0000 (13:17 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 16 Sep 2020 14:52:37 +0000 (16:52 +0200)
commit2c681e6b37674dc3941869cb262e26c8a6b34047
treeb1079a2a6c208b8261e0f68d4d2d4334120b48df
parent2b2c6aa63824c69c112bbe4f937f034c5e606a6c
x86/pci: Set default irq domain in pcibios_add_device()

Now that interrupt remapping sets the irqdomain pointer when a PCI device
is added it's possible to store the default irq domain in the device struct
in pcibios_add_device().

If the bus to which a device is connected has an irq domain associated then
this domain is used otherwise the default domain (PCI/MSI native or XEN
PCI/MSI) is used. Using the bus domain ensures that special MSI bus domains
like VMD work.

This makes XEN and the non-remapped native case work solely based on the
irq domain pointer in struct device for PCI/MSI and allows to remove the
arch fallback and make most of the x86_msi ops private to XEN in the next
steps.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20200826112333.900423047@linutronix.de
arch/x86/include/asm/irqdomain.h
arch/x86/kernel/apic/msi.c
arch/x86/pci/common.c