Now that we have the shared page in place and the MMU code knows about the magic page, we can expose that capability to the guest! Signed-off-by: Alexander Graf <agraf@xxxxxxx> --- arch/powerpc/include/asm/kvm_para.h | 2 ++ arch/powerpc/kvm/powerpc.c | 11 +++++++++++ 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/include/asm/kvm_para.h b/arch/powerpc/include/asm/kvm_para.h index 82131fc..3cae15d 100644 --- a/arch/powerpc/include/asm/kvm_para.h +++ b/arch/powerpc/include/asm/kvm_para.h @@ -43,6 +43,8 @@ struct kvm_vcpu_arch_shared { #define KVM_SC_MAGIC_R0 0x4b564d52 /* "KVMR" */ #define KVM_SC_MAGIC_R3 0x554c455a /* "ULEZ" */ +#define KVM_FEATURE_MAGIC_PAGE 1 + #ifdef __KERNEL__ static inline int kvm_para_available(void) diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c index 1ebb29e..0be119a 100644 --- a/arch/powerpc/kvm/powerpc.c +++ b/arch/powerpc/kvm/powerpc.c @@ -60,8 +60,19 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu) } switch (nr) { + case KVM_HC_PPC_MAP_MAGIC_PAGE: + { + vcpu->arch.magic_page_pa = param1; + vcpu->arch.magic_page_ea = param2; + + r = 0; + break; + } case KVM_HC_FEATURES: r = 0; +#if !defined(CONFIG_KVM_440) /* XXX missing bits on 440 */ + r |= (1 << KVM_FEATURE_MAGIC_PAGE); +#endif break; default: r = -KVM_ENOSYS; -- 1.6.0.2 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html