Label names in kvm_init() are horrible, rename them to make it obvious what we are going to do on the failure path. Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> --- virt/kvm/kvm_main.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 33e1eee96f75..892ea0b9087e 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -4674,7 +4674,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, r = kvm_arch_init(opaque); if (r) - goto out_fail; + return r; /* * kvm_arch_init makes sure there's at most one caller @@ -4685,29 +4685,29 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, */ r = kvm_irqfd_init(); if (r) - goto out_irqfd; + goto out_arch_exit; if (!zalloc_cpumask_var(&cpus_hardware_enabled, GFP_KERNEL)) { r = -ENOMEM; - goto out_free_0; + goto out_irqfd_exit; } r = kvm_arch_hardware_setup(opaque); if (r < 0) - goto out_free_1; + goto out_free_hardware_enabled; c.ret = &r; c.opaque = opaque; for_each_online_cpu(cpu) { smp_call_function_single(cpu, check_processor_compat, &c, 1); if (r < 0) - goto out_free_2; + goto out_free_hardware_unsetup; } r = cpuhp_setup_state_nocalls(CPUHP_AP_KVM_STARTING, "kvm/cpu:starting", kvm_starting_cpu, kvm_dying_cpu); if (r) - goto out_free_2; + goto out_free_hardware_unsetup; register_reboot_notifier(&kvm_reboot_notifier); /* A kmem cache lets us meet the alignment requirements of fx_save. */ @@ -4721,12 +4721,12 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, NULL); if (!kvm_vcpu_cache) { r = -ENOMEM; - goto out_free_3; + goto out_free_cpuhp_unregister; } r = kvm_async_pf_init(); if (r) - goto out_free; + goto out_free_vcpu_cache; kvm_chardev_ops.owner = module; kvm_vm_fops.owner = module; @@ -4735,7 +4735,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, r = misc_register(&kvm_dev); if (r) { pr_err("kvm: misc device register failed\n"); - goto out_unreg; + goto out_async_pf_deinit; } register_syscore_ops(&kvm_syscore_ops); @@ -4750,22 +4750,21 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, return 0; -out_unreg: +out_async_pf_deinit: kvm_async_pf_deinit(); -out_free: +out_free_vcpu_cache: kmem_cache_destroy(kvm_vcpu_cache); -out_free_3: +out_free_cpuhp_unregister: unregister_reboot_notifier(&kvm_reboot_notifier); cpuhp_remove_state_nocalls(CPUHP_AP_KVM_STARTING); -out_free_2: +out_free_hardware_unsetup: kvm_arch_hardware_unsetup(); -out_free_1: +out_free_hardware_enabled: free_cpumask_var(cpus_hardware_enabled); -out_free_0: +out_irqfd_exit: kvm_irqfd_exit(); -out_irqfd: +out_arch_exit: kvm_arch_exit(); -out_fail: return r; } EXPORT_SYMBOL_GPL(kvm_init); -- 2.25.4