diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/sysdev/qe_lib/qe_ic.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c index 074905c3ee5a..3faa42e03a85 100644 --- a/arch/powerpc/sysdev/qe_lib/qe_ic.c +++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c | |||
@@ -339,8 +339,10 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags, | |||
339 | 339 | ||
340 | qe_ic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR, | 340 | qe_ic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR, |
341 | NR_QE_IC_INTS, &qe_ic_host_ops, 0); | 341 | NR_QE_IC_INTS, &qe_ic_host_ops, 0); |
342 | if (qe_ic->irqhost == NULL) | 342 | if (qe_ic->irqhost == NULL) { |
343 | kfree(qe_ic); | ||
343 | return; | 344 | return; |
345 | } | ||
344 | 346 | ||
345 | qe_ic->regs = ioremap(res.start, res.end - res.start + 1); | 347 | qe_ic->regs = ioremap(res.start, res.end - res.start + 1); |
346 | 348 | ||
@@ -352,6 +354,7 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags, | |||
352 | 354 | ||
353 | if (qe_ic->virq_low == NO_IRQ) { | 355 | if (qe_ic->virq_low == NO_IRQ) { |
354 | printk(KERN_ERR "Failed to map QE_IC low IRQ\n"); | 356 | printk(KERN_ERR "Failed to map QE_IC low IRQ\n"); |
357 | kfree(qe_ic); | ||
355 | return; | 358 | return; |
356 | } | 359 | } |
357 | 360 | ||