|
@@ -215,6 +215,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
|
|
{
|
|
|
int rc;
|
|
|
char debug_name[16];
|
|
|
+ static unsigned long sca_offset;
|
|
|
|
|
|
rc = -EINVAL;
|
|
|
#ifdef CONFIG_KVM_S390_UCONTROL
|
|
@@ -236,6 +237,10 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
|
|
kvm->arch.sca = (struct sca_block *) get_zeroed_page(GFP_KERNEL);
|
|
|
if (!kvm->arch.sca)
|
|
|
goto out_err;
|
|
|
+ spin_lock(&kvm_lock);
|
|
|
+ sca_offset = (sca_offset + 16) & 0x7f0;
|
|
|
+ kvm->arch.sca = (struct sca_block *) ((char *) kvm->arch.sca + sca_offset);
|
|
|
+ spin_unlock(&kvm_lock);
|
|
|
|
|
|
sprintf(debug_name, "kvm-%u", current->pid);
|
|
|
|