powerpc/powernv: Don't alloc IRQ map if necessary

On PowerNV platform, the OPAL interrupts are exported by firmware
through device-node property (/ibm,opal::opal-interrupts). Under
some extreme circumstances (e.g. simulator), we don't have this
property found from the device tree. For that case, we shouldn't
allocate the interrupt map. Otherwise, slab complains allocating
zero sized memory chunk.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Gavin Shan 2015-01-23 14:25:06 +11:00 committed by Michael Ellerman
parent c1c3a526bb
commit 31494cf353
1 changed files with 4 additions and 3 deletions

View File

@ -708,11 +708,12 @@ static void __init opal_irq_init(struct device_node *dn)
/* Get interrupt property */
irqs = of_get_property(opal_node, "opal-interrupts", &irqlen);
pr_debug("Found %d interrupts reserved for OPAL\n",
irqs ? (irqlen / 4) : 0);
opal_irq_count = irqs ? (irqlen / 4) : 0;
pr_debug("Found %d interrupts reserved for OPAL\n", opal_irq_count);
if (!opal_irq_count)
return;
/* Install interrupt handlers */
opal_irq_count = irqlen / 4;
opal_irqs = kzalloc(opal_irq_count * sizeof(unsigned int), GFP_KERNEL);
for (i = 0; irqs && i < opal_irq_count; i++, irqs++) {
unsigned int irq, virq;