aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm/book3s_hv_rmhandlers.S
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-04-17 16:31:15 -0400
committerAlexander Graf <agraf@suse.de>2013-04-26 14:27:32 -0400
commite7d26f285b4be9466c9e393139e1c9cffe4cedfc (patch)
tree0afc30678671f87be82992d306cdec3b984bc6dd /arch/powerpc/kvm/book3s_hv_rmhandlers.S
parent54695c3088a74e25474db8eb6b490b45d1aeb0ca (diff)
KVM: PPC: Book3S HV: Add support for real mode ICP in XICS emulation
This adds an implementation of the XICS hypercalls in real mode for HV KVM, which allows us to avoid exiting the guest MMU context on all threads for a variety of operations such as fetching a pending interrupt, EOI of messages, IPIs, etc. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kvm/book3s_hv_rmhandlers.S')
-rw-r--r--arch/powerpc/kvm/book3s_hv_rmhandlers.S18
1 files changed, 13 insertions, 5 deletions
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 56f8927b0ddf..fd3b72d5dfe6 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1424,11 +1424,19 @@ hcall_real_table:
1424 .long 0 /* 0x58 */ 1424 .long 0 /* 0x58 */
1425 .long 0 /* 0x5c */ 1425 .long 0 /* 0x5c */
1426 .long 0 /* 0x60 */ 1426 .long 0 /* 0x60 */
1427 .long 0 /* 0x64 */ 1427#ifdef CONFIG_KVM_XICS
1428 .long 0 /* 0x68 */ 1428 .long .kvmppc_rm_h_eoi - hcall_real_table
1429 .long 0 /* 0x6c */ 1429 .long .kvmppc_rm_h_cppr - hcall_real_table
1430 .long 0 /* 0x70 */ 1430 .long .kvmppc_rm_h_ipi - hcall_real_table
1431 .long 0 /* 0x74 */ 1431 .long 0 /* 0x70 - H_IPOLL */
1432 .long .kvmppc_rm_h_xirr - hcall_real_table
1433#else
1434 .long 0 /* 0x64 - H_EOI */
1435 .long 0 /* 0x68 - H_CPPR */
1436 .long 0 /* 0x6c - H_IPI */
1437 .long 0 /* 0x70 - H_IPOLL */
1438 .long 0 /* 0x74 - H_XIRR */
1439#endif
1432 .long 0 /* 0x78 */ 1440 .long 0 /* 0x78 */
1433 .long 0 /* 0x7c */ 1441 .long 0 /* 0x7c */
1434 .long 0 /* 0x80 */ 1442 .long 0 /* 0x80 */