• Thomas Gleixner's avatar
    iommu/vt-d: Cure VF irqdomain hickup · ff828729
    Thomas Gleixner authored
    The recent changes to store the MSI irqdomain pointer in struct device
    missed that Intel DMAR does not register virtual function devices.  Due to
    that a VF device gets the plain PCI-MSI domain assigned and then issues
    compat MSI messages which get caught by the interrupt remapping unit.
    
    Cure that by inheriting the irq domain from the physical function
    device.
    
    Ideally the irqdomain would be associated to the bus, but DMAR can have
    multiple units and therefore irqdomains on a single bus. The VF 'bus' could
    of course inherit the domain from the PF, but that'd be yet another x86
    oddity.
    
    Fixes: 85a8dfc5 ("iommm/vt-d: Store irq domain in struct device")
    Reported-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Acked-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Link: https://lore.kernel.org/r/draft-87eekymlpz.fsf@nanos.tec.linutronix.de
    ff828729
dmar.c 59.5 KB