On 18.02.20 10:33, David Hildenbrand wrote: eliver_prog(struct kvm_vcpu *vcpu) >> { >> struct kvm_s390_local_interrupt *li = &vcpu->arch.local_int; >> @@ -856,6 +871,9 @@ static int __must_check __deliver_prog(struct kvm_vcpu *vcpu) >> trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id, KVM_S390_PROGRAM_INT, >> pgm_info.code, 0); >> >> + if (kvm_s390_pv_is_protected(vcpu->kvm)) > > Can we actually ever have PER set, and what would happen if so? > Shouldn't we also return -EINVAL? The ultravisor would add a concurrent PER event if appropriate.