diff options
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r-- | drivers/pci/msi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 53e463244bb7..7eaa4c87fec7 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -54,7 +54,7 @@ static int pci_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) | |||
54 | struct irq_domain *domain; | 54 | struct irq_domain *domain; |
55 | 55 | ||
56 | domain = pci_msi_get_domain(dev); | 56 | domain = pci_msi_get_domain(dev); |
57 | if (domain) | 57 | if (domain && irq_domain_is_hierarchy(domain)) |
58 | return pci_msi_domain_alloc_irqs(domain, dev, nvec, type); | 58 | return pci_msi_domain_alloc_irqs(domain, dev, nvec, type); |
59 | 59 | ||
60 | return arch_setup_msi_irqs(dev, nvec, type); | 60 | return arch_setup_msi_irqs(dev, nvec, type); |
@@ -65,7 +65,7 @@ static void pci_msi_teardown_msi_irqs(struct pci_dev *dev) | |||
65 | struct irq_domain *domain; | 65 | struct irq_domain *domain; |
66 | 66 | ||
67 | domain = pci_msi_get_domain(dev); | 67 | domain = pci_msi_get_domain(dev); |
68 | if (domain) | 68 | if (domain && irq_domain_is_hierarchy(domain)) |
69 | pci_msi_domain_free_irqs(domain, dev); | 69 | pci_msi_domain_free_irqs(domain, dev); |
70 | else | 70 | else |
71 | arch_teardown_msi_irqs(dev); | 71 | arch_teardown_msi_irqs(dev); |