KVM: s390: sie intercept handling
authorChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 25 Mar 2008 17:47:23 +0000 (18:47 +0100)
committerAvi Kivity <avi@qumranet.com>
Sun, 27 Apr 2008 09:00:43 +0000 (12:00 +0300)
commit8f2abe6a1e525e878bdf58f68ccd146d543fde84
tree5f52959474a16847c740fb8668ebd9d6cbc75d07
parentb0c632db637d68ad39d9f97f452ce176253f5f4e
KVM: s390: sie intercept handling

This path introduces handling of sie intercepts in three flavors: Intercepts
are either handled completely in-kernel by kvm_handle_sie_intercept(),
or passed to userspace with corresponding data in struct kvm_run in case
kvm_handle_sie_intercept() returns -ENOTSUPP.
In case of partial execution in kernel with the need of userspace support,
kvm_handle_sie_intercept() may choose to set up struct kvm_run and return
-EREMOTE.

The trivial intercept reasons are handled in this patch:
handle_noop() just does nothing for intercepts that don't require our support
  at all
handle_stop() is called when a cpu enters stopped state, and it drops out to
  userland after updating our vcpu state
handle_validity() faults in the cpu lowcore if needed, or passes the request
  to userland

Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/s390/kvm/Makefile
arch/s390/kvm/intercept.c [new file with mode: 0644]
arch/s390/kvm/kvm-s390.c
arch/s390/kvm/kvm-s390.h
include/asm-s390/kvm_host.h
include/linux/kvm.h