Delay the setting of kvm_hv_ops until after all init code has
completed. This avoids leaving the ops still accessible if the init
fails.

Signed-off-by: Fabiano Rosas <faro...@linux.ibm.com>
---
 arch/powerpc/kvm/book3s_hv.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 4cdf2e6e1cf5..fe20074faa61 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -5985,9 +5985,6 @@ static int kvmppc_book3s_init_hv(void)
        }
 #endif
 
-       kvm_ops_hv.owner = THIS_MODULE;
-       kvmppc_hv_ops = &kvm_ops_hv;
-
        init_default_hcalls();
 
        init_vcore_lists();
@@ -6003,10 +6000,15 @@ static int kvmppc_book3s_init_hv(void)
        }
 
        r = kvmppc_uvmem_init();
-       if (r < 0)
+       if (r < 0) {
                pr_err("KVM-HV: kvmppc_uvmem_init failed %d\n", r);
+               return r;
+       }
 
-       return r;
+       kvm_ops_hv.owner = THIS_MODULE;
+       kvmppc_hv_ops = &kvm_ops_hv;
+
+       return 0;
 }
 
 static void kvmppc_book3s_exit_hv(void)
-- 
2.29.2

Reply via email to