aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/kvm/kvm-s390.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 02e03c862a60..4075acb7c517 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -897,7 +897,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
897 897
898 kvm->arch.dbf = debug_register(debug_name, 8, 2, 8 * sizeof(long)); 898 kvm->arch.dbf = debug_register(debug_name, 8, 2, 8 * sizeof(long));
899 if (!kvm->arch.dbf) 899 if (!kvm->arch.dbf)
900 goto out_nodbf; 900 goto out_err;
901 901
902 /* 902 /*
903 * The architectural maximum amount of facilities is 16 kbit. To store 903 * The architectural maximum amount of facilities is 16 kbit. To store
@@ -909,7 +909,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
909 kvm->arch.model.fac = 909 kvm->arch.model.fac =
910 (struct kvm_s390_fac *) get_zeroed_page(GFP_KERNEL | GFP_DMA); 910 (struct kvm_s390_fac *) get_zeroed_page(GFP_KERNEL | GFP_DMA);
911 if (!kvm->arch.model.fac) 911 if (!kvm->arch.model.fac)
912 goto out_nofac; 912 goto out_err;
913 913
914 /* Populate the facility mask initially. */ 914 /* Populate the facility mask initially. */
915 memcpy(kvm->arch.model.fac->mask, S390_lowcore.stfle_fac_list, 915 memcpy(kvm->arch.model.fac->mask, S390_lowcore.stfle_fac_list,
@@ -929,7 +929,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
929 kvm->arch.model.ibc = sclp_get_ibc() & 0x0fff; 929 kvm->arch.model.ibc = sclp_get_ibc() & 0x0fff;
930 930
931 if (kvm_s390_crypto_init(kvm) < 0) 931 if (kvm_s390_crypto_init(kvm) < 0)
932 goto out_crypto; 932 goto out_err;
933 933
934 spin_lock_init(&kvm->arch.float_int.lock); 934 spin_lock_init(&kvm->arch.float_int.lock);
935 INIT_LIST_HEAD(&kvm->arch.float_int.list); 935 INIT_LIST_HEAD(&kvm->arch.float_int.list);
@@ -944,7 +944,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
944 } else { 944 } else {
945 kvm->arch.gmap = gmap_alloc(current->mm, (1UL << 44) - 1); 945 kvm->arch.gmap = gmap_alloc(current->mm, (1UL << 44) - 1);
946 if (!kvm->arch.gmap) 946 if (!kvm->arch.gmap)
947 goto out_nogmap; 947 goto out_err;
948 kvm->arch.gmap->private = kvm; 948 kvm->arch.gmap->private = kvm;
949 kvm->arch.gmap->pfault_enabled = 0; 949 kvm->arch.gmap->pfault_enabled = 0;
950 } 950 }
@@ -957,15 +957,11 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
957 spin_lock_init(&kvm->arch.start_stop_lock); 957 spin_lock_init(&kvm->arch.start_stop_lock);
958 958
959 return 0; 959 return 0;
960out_nogmap: 960out_err:
961 kfree(kvm->arch.crypto.crycb); 961 kfree(kvm->arch.crypto.crycb);
962out_crypto:
963 free_page((unsigned long)kvm->arch.model.fac); 962 free_page((unsigned long)kvm->arch.model.fac);
964out_nofac:
965 debug_unregister(kvm->arch.dbf); 963 debug_unregister(kvm->arch.dbf);
966out_nodbf:
967 free_page((unsigned long)(kvm->arch.sca)); 964 free_page((unsigned long)(kvm->arch.sca));
968out_err:
969 return rc; 965 return rc;
970} 966}
971 967