From bf887de499a0a07b73dc7b0b90140c95e8bc78b0 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Thu, 29 Jul 2010 14:47:55 +0200 Subject: [PATCH] --- yaml --- r: 215689 b: refs/heads/master c: 5fc87407b55f5799418f4dc5931232c2bc06d077 h: refs/heads/master i: 215687: 873d3d88e5cccf0b90d6e99fe38f572fd2187d34 v: v3 --- [refs] | 2 +- trunk/arch/powerpc/include/asm/kvm_para.h | 2 ++ trunk/arch/powerpc/kvm/powerpc.c | 11 +++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 1f8bf8f57f1b..102e6bcd0d03 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e8508940a88691ad3d1c46608cd968eb4be9cbc5 +refs/heads/master: 5fc87407b55f5799418f4dc5931232c2bc06d077 diff --git a/trunk/arch/powerpc/include/asm/kvm_para.h b/trunk/arch/powerpc/include/asm/kvm_para.h index 0653b0d238b4..7438ab360120 100644 --- a/trunk/arch/powerpc/include/asm/kvm_para.h +++ b/trunk/arch/powerpc/include/asm/kvm_para.h @@ -45,6 +45,8 @@ struct kvm_vcpu_arch_shared { #define HC_EV_SUCCESS 0 #define HC_EV_UNIMPLEMENTED 12 +#define KVM_FEATURE_MAGIC_PAGE 1 + #ifdef __KERNEL__ #ifdef CONFIG_KVM_GUEST diff --git a/trunk/arch/powerpc/kvm/powerpc.c b/trunk/arch/powerpc/kvm/powerpc.c index a4cf4b47e232..fecfe043458d 100644 --- a/trunk/arch/powerpc/kvm/powerpc.c +++ b/trunk/arch/powerpc/kvm/powerpc.c @@ -61,8 +61,19 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu) } switch (nr) { + case HC_VENDOR_KVM | KVM_HC_PPC_MAP_MAGIC_PAGE: + { + vcpu->arch.magic_page_pa = param1; + vcpu->arch.magic_page_ea = param2; + + r = HC_EV_SUCCESS; + break; + } case HC_VENDOR_KVM | KVM_HC_FEATURES: r = HC_EV_SUCCESS; +#if defined(CONFIG_PPC_BOOK3S) /* XXX Missing magic page on BookE */ + r2 |= (1 << KVM_FEATURE_MAGIC_PAGE); +#endif /* Second return value is in r4 */ kvmppc_set_gpr(vcpu, 4, r2);