On Thursday, December 6, 2012, Marc Zyngier wrote:
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
---
arch/arm/kvm/vgic.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/arch/arm/kvm/vgic.c b/arch/arm/kvm/vgic.c
index 49b594e..27b469d 100644
--- a/arch/arm/kvm/vgic.c
+++ b/arch/arm/kvm/vgic.c
@@ -1306,14 +1306,16 @@ int kvm_vgic_hyp_init(void)
return -ENODEV;
vgic_irq = irq_of_parse_and_map(vgic_node, 0);
- if (!vgic_irq)
- return -ENXIO;
+ if (!vgic_irq) {
+ ret = -ENXIO;
+ goto out;
+ }
ret = request_percpu_irq(vgic_irq, vgic_maintenance_handler,
"vgic", kvm_get_running_vcpus());
if (ret) {
kvm_err("Cannot register interrupt %d\n", vgic_irq);
- return ret;
+ goto out;
}
ret = register_cpu_notifier(&vgic_cpu_nb);
@@ -1356,13 +1358,14 @@ int kvm_vgic_hyp_init(void)
}
vgic_vcpu_base = vcpu_res.start;
- return 0;
+ goto out;
out_unmap:
iounmap(vgic_vctrl_base);
out_free_irq:
free_percpu_irq(vgic_irq, kvm_get_running_vcpus());
-
+out:
+ of_node_put(vgic_node);
return ret;
}
ack
_______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm