[PATCH] irqchip/gic: fix passing wrong start irq number to irq_alloc_descs() for secondary GICs

From: Liu Xiang
Date: Mon Mar 11 2019 - 10:52:23 EST


For secondary GICs, the start irq number should skip over SGIs
and PPIs. Its value should be 32. So we should pass hwirq_base to
irq_alloc_descs() rather than a constant number 16.

Signed-off-by: Liu Xiang <liu.xiang6@xxxxxxxxxx>
---
drivers/irqchip/irq-gic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index ba2a37a..351f576 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -1157,7 +1157,7 @@ static int gic_init_bases(struct gic_chip_data *gic, int irq_start,

gic_irqs -= hwirq_base; /* calculate # of irqs to allocate */

- irq_base = irq_alloc_descs(irq_start, 16, gic_irqs,
+ irq_base = irq_alloc_descs(irq_start, hwirq_base, gic_irqs,
numa_node_id());
if (irq_base < 0) {
WARN(1, "Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated\n",
--
1.9.1