On Mon, 3 Feb 2020 08:19:38 -0500 Christian Borntraeger <borntraeger@xxxxxxxxxx> 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. Maybe we should either merge this with the patch introducing the other interrupt injections, or split that up into io/external/restart. It seems slightly odd to single out machine checks here. > > 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; Maybe add a comment that we don't need with other machine-check related data? > + return 0; > + } > + > mci.val = mchk->mcic; > /* take care of lazy register loading */ > save_fpu_regs(); Anyway, Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>