diff options
-rw-r--r-- | arch/s390/kvm/kvm-s390.c | 14 |
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; |
960 | out_nogmap: | 960 | out_err: |
961 | kfree(kvm->arch.crypto.crycb); | 961 | kfree(kvm->arch.crypto.crycb); |
962 | out_crypto: | ||
963 | free_page((unsigned long)kvm->arch.model.fac); | 962 | free_page((unsigned long)kvm->arch.model.fac); |
964 | out_nofac: | ||
965 | debug_unregister(kvm->arch.dbf); | 963 | debug_unregister(kvm->arch.dbf); |
966 | out_nodbf: | ||
967 | free_page((unsigned long)(kvm->arch.sca)); | 964 | free_page((unsigned long)(kvm->arch.sca)); |
968 | out_err: | ||
969 | return rc; | 965 | return rc; |
970 | } | 966 | } |
971 | 967 | ||