aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/kvm/kvm-s390.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 7337c577e949..a02979f1e1af 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -215,6 +215,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
215{ 215{
216 int rc; 216 int rc;
217 char debug_name[16]; 217 char debug_name[16];
218 static unsigned long sca_offset;
218 219
219 rc = -EINVAL; 220 rc = -EINVAL;
220#ifdef CONFIG_KVM_S390_UCONTROL 221#ifdef CONFIG_KVM_S390_UCONTROL
@@ -236,6 +237,10 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
236 kvm->arch.sca = (struct sca_block *) get_zeroed_page(GFP_KERNEL); 237 kvm->arch.sca = (struct sca_block *) get_zeroed_page(GFP_KERNEL);
237 if (!kvm->arch.sca) 238 if (!kvm->arch.sca)
238 goto out_err; 239 goto out_err;
240 spin_lock(&kvm_lock);
241 sca_offset = (sca_offset + 16) & 0x7f0;
242 kvm->arch.sca = (struct sca_block *) ((char *) kvm->arch.sca + sca_offset);
243 spin_unlock(&kvm_lock);
239 244
240 sprintf(debug_name, "kvm-%u", current->pid); 245 sprintf(debug_name, "kvm-%u", current->pid);
241 246