Re: [PATCH 16/16] ARM: KVM: timer: use of_node_put() once done with DT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Thursday, December 6, 2012, Marc Zyngier wrote:
Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx>
---
 arch/arm/kvm/arch_timer.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/arch/arm/kvm/arch_timer.c b/arch/arm/kvm/arch_timer.c
index 3435915..6cb9aa3 100644
--- a/arch/arm/kvm/arch_timer.c
+++ b/arch/arm/kvm/arch_timer.c
@@ -202,7 +202,8 @@ int kvm_timer_hyp_init(void)
        ppi = irq_of_parse_and_map(np, 2);
        if (!ppi) {
                kvm_err("kvm_arch_timer: no virtual timer interrupt\n");
-               return -EINVAL;
+               err = -EINVAL;
+               goto out;
        }

        err = request_percpu_irq(ppi, kvm_arch_timer_handler,
@@ -210,7 +211,7 @@ int kvm_timer_hyp_init(void)
        if (err) {
                kvm_err("kvm_arch_timer: can't request interrupt %d (%d)\n",
                        ppi, err);
-               return err;
+               goto out;
        }

        timer_irq.irq = ppi;
@@ -218,21 +219,23 @@ int kvm_timer_hyp_init(void)
        err = register_cpu_notifier(&kvm_timer_cpu_nb);
        if (err) {
                kvm_err("Cannot register timer CPU notifier\n");
-               goto out;
+               goto out_free;
        }

        wqueue = create_singlethread_workqueue("kvm_arch_timer");
        if (!wqueue) {
                err = -ENOMEM;
-               goto out;
+               goto out_free;
        }

        kvm_info("%s IRQ%d\n", np->name, ppi);
        on_each_cpu(kvm_timer_init_interrupt, NULL, 1);

-       return 0;
-out:
+       goto out;
+out_free:
        free_percpu_irq(ppi, kvm_get_running_vcpus());
+out:
+       of_node_put(np);
        return err;
 }

--
1.8.0.1


ack 
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm

[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux