|
|
@@ -54,7 +54,7 @@ static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
|
|
|
struct irq_domain *domain;
|
|
|
|
|
|
domain = pci_msi_get_domain(dev);
|
|
|
- if (domain)
|
|
|
+ if (domain && irq_domain_is_hierarchy(domain))
|
|
|
return pci_msi_domain_alloc_irqs(domain, dev, nvec, type);
|
|
|
|
|
|
return arch_setup_msi_irqs(dev, nvec, type);
|
|
|
@@ -65,7 +65,7 @@ static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
|
|
|
struct irq_domain *domain;
|
|
|
|
|
|
domain = pci_msi_get_domain(dev);
|
|
|
- if (domain)
|
|
|
+ if (domain && irq_domain_is_hierarchy(domain))
|
|
|
pci_msi_domain_free_irqs(domain, dev);
|
|
|
else
|
|
|
arch_teardown_msi_irqs(dev);
|