On Mon, 24 Feb 2020 06:40:45 -0500 Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote: > From: Michael Mueller <mimu@xxxxxxxxxxxxx> > > This defines the necessary data structures in the SIE control block to > inject machine checks,external and I/O interrupts. We first define the > the interrupt injection control, which defines the next interrupt to > inject. Then we define the fields that contain the payload for machine > checks,external and I/O interrupts. > This is then used to implement interruption injection for the following > list of interruption types: > > - I/O (uses inject io interruption) > __deliver_io > > - External (uses inject external interruption) > __deliver_cpu_timer > __deliver_ckc > __deliver_emergency_signal > __deliver_external_call > > - cpu restart (uses inject restart interruption) > __deliver_restart > > - machine checks (uses mcic, failing address and external damage) > __write_machine_check > > Please note that posted interrupts (GISA) are not used for protected > guests as of today. > > The service interrupt is handled in a followup patch. > > Signed-off-by: Michael Mueller <mimu@xxxxxxxxxxxxx> > Reviewed-by: Thomas Huth <thuth@xxxxxxxxxx> > [borntraeger@xxxxxxxxxx: patch merging, splitting, fixing] > Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > --- > arch/s390/include/asm/kvm_host.h | 62 +++++++++++++---- > arch/s390/kvm/interrupt.c | 115 +++++++++++++++++++++++-------- > 2 files changed, 138 insertions(+), 39 deletions(-) Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>