|
@@ -1719,7 +1719,7 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
|
|
|
|
|
|
save_access_regs(vcpu->arch.host_acrs);
|
|
|
restore_access_regs(vcpu->run->s.regs.acrs);
|
|
|
- gmap_enable(vcpu->arch.gmap);
|
|
|
+ gmap_enable(vcpu->arch.enabled_gmap);
|
|
|
atomic_or(CPUSTAT_RUNNING, &vcpu->arch.sie_block->cpuflags);
|
|
|
if (vcpu->arch.cputm_enabled && !is_vcpu_idle(vcpu))
|
|
|
__start_cpu_timer_accounting(vcpu);
|
|
@@ -1732,7 +1732,8 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)
|
|
|
if (vcpu->arch.cputm_enabled && !is_vcpu_idle(vcpu))
|
|
|
__stop_cpu_timer_accounting(vcpu);
|
|
|
atomic_andnot(CPUSTAT_RUNNING, &vcpu->arch.sie_block->cpuflags);
|
|
|
- gmap_disable(vcpu->arch.gmap);
|
|
|
+ vcpu->arch.enabled_gmap = gmap_get_enabled();
|
|
|
+ gmap_disable(vcpu->arch.enabled_gmap);
|
|
|
|
|
|
/* Save guest register state */
|
|
|
save_fpu_regs();
|
|
@@ -1781,7 +1782,8 @@ void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu)
|
|
|
vcpu->arch.gmap = vcpu->kvm->arch.gmap;
|
|
|
sca_add_vcpu(vcpu);
|
|
|
}
|
|
|
-
|
|
|
+ /* make vcpu_load load the right gmap on the first trigger */
|
|
|
+ vcpu->arch.enabled_gmap = vcpu->arch.gmap;
|
|
|
}
|
|
|
|
|
|
static void kvm_s390_vcpu_crypto_setup(struct kvm_vcpu *vcpu)
|