On 06.02.20 11:10, Cornelia Huck wrote: > On Mon, 3 Feb 2020 08:19:55 -0500 > Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote: > >> From: Janosch Frank <frankja@xxxxxxxxxxxxx> >> >> We're not allowed to inject interrupts on those intercept codes. As our > > Spell out what these codes actually are? We're not allowed to inject interrupts on intercepts that leave the guest state in an "in-beetween" state where the next SIE entry will do a continuation. Namely secure instruction interception and secure prefix interception... >> @@ -4082,10 +4083,15 @@ static int __vcpu_run(struct kvm_vcpu *vcpu) >> } >> exit_reason = sie64a(vcpu->arch.sie_block, >> vcpu->run->s.regs.gprs); >> + /* This will likely be moved into a new function. */ > > Hm? Unless you have a good naming for such function, will remove this comment. I tried that but I the end result was not better or worse. > >> if (kvm_s390_pv_is_protected(vcpu->kvm)) { >> memcpy(vcpu->run->s.regs.gprs, >> sie_page->pv_grregs, >> sizeof(sie_page->pv_grregs)); >> + if (vcpu->arch.sie_block->icptcode == ICPT_PV_INSTR || >> + vcpu->arch.sie_block->icptcode == ICPT_PV_PREF) { >> + vcpu->arch.sie_block->gpsw.mask &= ~PSW_INT_MASK; >> + } >> } >> local_irq_disable(); >> __enable_cpu_timer_accounting(vcpu); >