If we do the call to of_address_to_resource() first, then we don't
need to worry about freeing the irq_host (which the code doesn't do
currently anyway).
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
        struct resource res;
        u32 temp = 0, ret;
 
+       ret = of_address_to_resource(node, 0, &res);
+       if (ret)
+               return NULL;
+
        ipic = alloc_bootmem(sizeof(struct ipic));
        if (ipic == NULL)
                return NULL;
                return NULL;
        }
 
-       ret = of_address_to_resource(node, 0, &res);
-       if (ret) {
-               of_node_put(node);
-               return NULL;
-       }
-
        ipic->regs = ioremap(res.start, res.end - res.start + 1);
 
        ipic->irqhost->host_data = ipic;