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 ---