diff options
Diffstat (limited to 'arch/s390/kvm/kvm-s390.c')
| -rw-r--r-- | arch/s390/kvm/kvm-s390.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index f17296e4fc8..dc2b580e27b 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -123,6 +123,7 @@ int kvm_dev_ioctl_check_extension(long ext)  	switch (ext) {  	case KVM_CAP_S390_PSW: +	case KVM_CAP_S390_GMAP:  		r = 1;  		break;  	default: @@ -263,10 +264,12 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)  	vcpu->arch.guest_fpregs.fpc &= FPC_VALID_MASK;  	restore_fp_regs(&vcpu->arch.guest_fpregs);  	restore_access_regs(vcpu->arch.guest_acrs); +	gmap_enable(vcpu->arch.gmap);  }  void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu)  { +	gmap_disable(vcpu->arch.gmap);  	save_fp_regs(&vcpu->arch.guest_fpregs);  	save_access_regs(vcpu->arch.guest_acrs);  	restore_fp_regs(&vcpu->arch.host_fpregs); @@ -461,7 +464,6 @@ static void __vcpu_run(struct kvm_vcpu *vcpu)  	local_irq_disable();  	kvm_guest_enter();  	local_irq_enable(); -	gmap_enable(vcpu->arch.gmap);  	VCPU_EVENT(vcpu, 6, "entering sie flags %x",  		   atomic_read(&vcpu->arch.sie_block->cpuflags));  	if (sie64a(vcpu->arch.sie_block, vcpu->arch.guest_gprs)) { @@ -470,7 +472,6 @@ static void __vcpu_run(struct kvm_vcpu *vcpu)  	}  	VCPU_EVENT(vcpu, 6, "exit sie icptcode %d",  		   vcpu->arch.sie_block->icptcode); -	gmap_disable(vcpu->arch.gmap);  	local_irq_disable();  	kvm_guest_exit();  	local_irq_enable();  |