kvm-s390.c (68cf7b1f137e61cea71925e48bc0c6d7bcfc637c) | kvm-s390.c (0f3035047140b3dc18fc5a028ed5f273f24b5539) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * hosting IBM Z kernel virtual machines (s390x) 4 * 5 * Copyright IBM Corp. 2008, 2020 6 * 7 * Author(s): Carsten Otte <cotte@de.ibm.com> 8 * Christian Borntraeger <borntraeger@de.ibm.com> --- 3488 unchanged lines hidden (view full) --- 3497 kvm_arch_vcpu_ioctl_normal_reset(vcpu); 3498 3499 /* this equals initial cpu reset in pop, but we don't switch to ESA */ 3500 vcpu->arch.sie_block->gpsw.mask = 0; 3501 vcpu->arch.sie_block->gpsw.addr = 0; 3502 kvm_s390_set_prefix(vcpu, 0); 3503 kvm_s390_set_cpu_timer(vcpu, 0); 3504 vcpu->arch.sie_block->ckc = 0; | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * hosting IBM Z kernel virtual machines (s390x) 4 * 5 * Copyright IBM Corp. 2008, 2020 6 * 7 * Author(s): Carsten Otte <cotte@de.ibm.com> 8 * Christian Borntraeger <borntraeger@de.ibm.com> --- 3488 unchanged lines hidden (view full) --- 3497 kvm_arch_vcpu_ioctl_normal_reset(vcpu); 3498 3499 /* this equals initial cpu reset in pop, but we don't switch to ESA */ 3500 vcpu->arch.sie_block->gpsw.mask = 0; 3501 vcpu->arch.sie_block->gpsw.addr = 0; 3502 kvm_s390_set_prefix(vcpu, 0); 3503 kvm_s390_set_cpu_timer(vcpu, 0); 3504 vcpu->arch.sie_block->ckc = 0; |
3505 vcpu->arch.sie_block->todpr = 0; | |
3506 memset(vcpu->arch.sie_block->gcr, 0, sizeof(vcpu->arch.sie_block->gcr)); 3507 vcpu->arch.sie_block->gcr[0] = CR0_INITIAL_MASK; 3508 vcpu->arch.sie_block->gcr[14] = CR14_INITIAL_MASK; 3509 vcpu->run->s.regs.fpc = 0; | 3505 memset(vcpu->arch.sie_block->gcr, 0, sizeof(vcpu->arch.sie_block->gcr)); 3506 vcpu->arch.sie_block->gcr[0] = CR0_INITIAL_MASK; 3507 vcpu->arch.sie_block->gcr[14] = CR14_INITIAL_MASK; 3508 vcpu->run->s.regs.fpc = 0; |
3510 vcpu->arch.sie_block->gbea = 1; 3511 vcpu->arch.sie_block->pp = 0; 3512 vcpu->arch.sie_block->fpf &= ~FPF_BPBC; | 3509 /* 3510 * Do not reset these registers in the protected case, as some of 3511 * them are overlayed and they are not accessible in this case 3512 * anyway. 3513 */ 3514 if (!kvm_s390_pv_cpu_is_protected(vcpu)) { 3515 vcpu->arch.sie_block->gbea = 1; 3516 vcpu->arch.sie_block->pp = 0; 3517 vcpu->arch.sie_block->fpf &= ~FPF_BPBC; 3518 vcpu->arch.sie_block->todpr = 0; 3519 } |
3513} 3514 3515static void kvm_arch_vcpu_ioctl_clear_reset(struct kvm_vcpu *vcpu) 3516{ 3517 struct kvm_sync_regs *regs = &vcpu->run->s.regs; 3518 3519 /* Clear reset is a superset of the initial reset */ 3520 kvm_arch_vcpu_ioctl_initial_reset(vcpu); --- 1395 unchanged lines hidden --- | 3520} 3521 3522static void kvm_arch_vcpu_ioctl_clear_reset(struct kvm_vcpu *vcpu) 3523{ 3524 struct kvm_sync_regs *regs = &vcpu->run->s.regs; 3525 3526 /* Clear reset is a superset of the initial reset */ 3527 kvm_arch_vcpu_ioctl_initial_reset(vcpu); --- 1395 unchanged lines hidden --- |