s390x: protvirt: KVM intercept changes
commit2585e507ffa1da01b57dbea26b1e1fe507d27198
authorJanosch Frank <frankja@linux.ibm.com>
Thu, 19 Mar 2020 13:19:11 +0000 (19 09:19 -0400)
committerCornelia Huck <cohuck@redhat.com>
Wed, 29 Apr 2020 12:31:31 +0000 (29 14:31 +0200)
treec2014e791865c02a1dbf5a5910ffdfacf93e86de
parentb1697f63fd8f8201b1447bb55f595830b9cbde31
s390x: protvirt: KVM intercept changes

Protected VMs no longer intercept with code 4 for an instruction
interception. Instead they have codes 104 and 108 for protected
instruction interception and protected instruction notification
respectively.

The 104 mirrors the 4 interception.

The 108 is a notification interception to let KVM and QEMU know that
something changed and we need to update tracking information or
perform specific tasks. It's currently taken for the following
instructions:

* spx (To inform about the changed prefix location)
* sclp (On incorrect SCCB values, so we can inject a IRQ)
* sigp (All but "stop and store status")
* diag308 (Subcodes 0/1)

Of these exits only sclp errors, state changing sigps and diag308 will
reach QEMU. QEMU will do its parts of the job, while the ultravisor
has done the instruction part of the job.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200319131921.2367-7-frankja@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
target/s390x/kvm.c