]> git.samba.org - sfrench/cifs-2.6.git/commitdiff
KVM: ARM: Call hyp_cpu_pm_exit at the right place
authorShannon Zhao <shannon.zhao@linux.alibaba.com>
Mon, 2 Dec 2019 07:42:11 +0000 (15:42 +0800)
committerMarc Zyngier <maz@kernel.org>
Sun, 19 Jan 2020 18:03:31 +0000 (18:03 +0000)
It doesn't needs to call hyp_cpu_pm_exit() in init_hyp_mode() when some
error occurs. hyp_cpu_pm_exit() only needs to be called in
kvm_arch_init() if init_subsystems() fails. So move hyp_cpu_pm_exit()
out from teardown_hyp_mode() and call it directly in kvm_arch_init().

Signed-off-by: Shannon Zhao <shannon.zhao@linux.alibaba.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/1575272531-3204-1-git-send-email-shannon.zhao@linux.alibaba.com
virt/kvm/arm/arm.c

index 8de4daf25097d9267cf097d3be879f4372e3ff6a..b5d57ed6443ceeb283817bbf63f6f532fb984745 100644 (file)
@@ -1537,7 +1537,6 @@ static void teardown_hyp_mode(void)
        free_hyp_pgds();
        for_each_possible_cpu(cpu)
                free_page(per_cpu(kvm_arm_hyp_stack_page, cpu));
-       hyp_cpu_pm_exit();
 }
 
 /**
@@ -1751,6 +1750,7 @@ int kvm_arch_init(void *opaque)
        return 0;
 
 out_hyp:
+       hyp_cpu_pm_exit();
        if (!in_hyp_mode)
                teardown_hyp_mode();
 out_err: