|
@@ -339,8 +339,10 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags,
|
|
|
|
|
|
qe_ic->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR,
|
|
|
NR_QE_IC_INTS, &qe_ic_host_ops, 0);
|
|
|
- if (qe_ic->irqhost == NULL)
|
|
|
+ if (qe_ic->irqhost == NULL) {
|
|
|
+ kfree(qe_ic);
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
qe_ic->regs = ioremap(res.start, res.end - res.start + 1);
|
|
|
|
|
@@ -352,6 +354,7 @@ void __init qe_ic_init(struct device_node *node, unsigned int flags,
|
|
|
|
|
|
if (qe_ic->virq_low == NO_IRQ) {
|
|
|
printk(KERN_ERR "Failed to map QE_IC low IRQ\n");
|
|
|
+ kfree(qe_ic);
|
|
|
return;
|
|
|
}
|
|
|
|