KVM: PPC: Book3S HV: Move virtual mode ICP functions to real-mode
authorSuresh Warrier <warrier@linux.vnet.ibm.com>
Fri, 20 Mar 2015 09:39:47 +0000 (20:39 +1100)
committerAlexander Graf <agraf@suse.de>
Tue, 21 Apr 2015 13:21:30 +0000 (15:21 +0200)
commitb0221556dbd3c31c47f37703f856aeeffc78abd3
tree1bc8e3c6ea9e03e1c1310d9798348c9cfa3d1e10
parent34cb7954c0aa7c8ad1591cb6cceae36432f55bb5
KVM: PPC: Book3S HV: Move virtual mode ICP functions to real-mode

Interrupt-based hypercalls return H_TOO_HARD to inform KVM that it needs
to switch to the host to complete the rest of hypercall function in
virtual mode. This patch ports the virtual mode ICS/ICP reject and resend
functions to be runnable in hypervisor real mode, thus avoiding the need
to switch to the host to execute these functions in virtual mode. However,
the hypercalls continue to return H_TOO_HARD for vcpu_wakeup and notify
events - these events cannot be done in real mode and they will still need
a switch to host virtual mode.

There are sufficient differences between the real mode code and the
virtual mode code for the ICS/ICP resend and reject functions that
for now the code has been duplicated instead of sharing common code.
In the future, we can look at creating common functions.

Signed-off-by: Suresh Warrier <warrier@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/kvm/book3s_hv_rm_xics.c