On 03/02/2020 14.19, Christian Borntraeger wrote: > From: Michael Mueller <mimu@xxxxxxxxxxxxx> > > Similar to external interrupts, the hypervisor can inject machine > checks by providing the right data in the interrupt injection controls. > > Signed-off-by: Michael Mueller <mimu@xxxxxxxxxxxxx> > --- > arch/s390/kvm/interrupt.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c > index c707725e618b..a98f1dfde8de 100644 > --- a/arch/s390/kvm/interrupt.c > +++ b/arch/s390/kvm/interrupt.c > @@ -571,6 +571,14 @@ static int __write_machine_check(struct kvm_vcpu *vcpu, > union mci mci; > int rc; > > + if (kvm_s390_pv_is_protected(vcpu->kvm)) { > + vcpu->arch.sie_block->iictl = IICTL_CODE_MCHK; > + vcpu->arch.sie_block->mcic = mchk->mcic; > + vcpu->arch.sie_block->faddr = mchk->failing_storage_address; > + vcpu->arch.sie_block->edc = mchk->ext_damage_code; > + return 0; > + } > + > mci.val = mchk->mcic; > /* take care of lazy register loading */ > save_fpu_regs(); > Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx>