diff --git a/[refs] b/[refs] index e7e9263d69bf..e6f542645609 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: abdd7b91dab2f8b2e32e90e4b7e809ffb462a662 +refs/heads/master: fe41db7b3aca512e19b8ef4fbd5ad55545005d25 diff --git a/trunk/arch/arm/common/gic.c b/trunk/arch/arm/common/gic.c index 43240f315dea..410a546060a2 100644 --- a/trunk/arch/arm/common/gic.c +++ b/trunk/arch/arm/common/gic.c @@ -582,13 +582,16 @@ void __init gic_init(unsigned int gic_nr, int irq_start, * For primary GICs, skip over SGIs. * For secondary GICs, skip over PPIs, too. */ + domain->hwirq_base = 32; if (gic_nr == 0) { gic_cpu_base_addr = cpu_base; - domain->hwirq_base = 16; - if (irq_start > 0) - irq_start = (irq_start & ~31) + 16; - } else - domain->hwirq_base = 32; + + if ((irq_start & 31) > 0) { + domain->hwirq_base = 16; + if (irq_start != -1) + irq_start = (irq_start & ~31) + 16; + } + } /* * Find out how many interrupts are supported.