aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2015-11-23 03:26:04 -0500
committerMarc Zyngier <marc.zyngier@arm.com>2015-12-16 10:29:44 -0500
commitc466595c416c04036e1ba36ecdc5fe9072c76228 (patch)
tree3fad0898ec4c3fe0087189a7f257d07926e370e5
parent72f57f2f430f9d262fe3c8dd957f57cbdc1f5f97 (diff)
irqdomain: Make irq_domain_alloc_irqs_recursive available
We are soon going to need the MSI layer to call into the domain allocators. Instead of open coding this, make the standard irq_domain_alloc_irqs_recursive function available to the MSI layer. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-rw-r--r--include/linux/irqdomain.h3
-rw-r--r--kernel/irq/irqdomain.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index d5e5c5bef28c..cf96c6a326f7 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -367,6 +367,9 @@ static inline int irq_domain_alloc_irqs(struct irq_domain *domain,
367 return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false); 367 return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false);
368} 368}
369 369
370extern int irq_domain_alloc_irqs_recursive(struct irq_domain *domain,
371 unsigned int irq_base,
372 unsigned int nr_irqs, void *arg);
370extern int irq_domain_set_hwirq_and_chip(struct irq_domain *domain, 373extern int irq_domain_set_hwirq_and_chip(struct irq_domain *domain,
371 unsigned int virq, 374 unsigned int virq,
372 irq_hw_number_t hwirq, 375 irq_hw_number_t hwirq,
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 22aa9612ef7c..1c9973e1b316 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -1125,9 +1125,9 @@ static void irq_domain_free_irqs_recursive(struct irq_domain *domain,
1125 } 1125 }
1126} 1126}
1127 1127
1128static int irq_domain_alloc_irqs_recursive(struct irq_domain *domain, 1128int irq_domain_alloc_irqs_recursive(struct irq_domain *domain,
1129 unsigned int irq_base, 1129 unsigned int irq_base,
1130 unsigned int nr_irqs, void *arg) 1130 unsigned int nr_irqs, void *arg)
1131{ 1131{
1132 int ret = 0; 1132 int ret = 0;
1133 struct irq_domain *parent = domain->parent; 1133 struct irq_domain *parent = domain->parent;