From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Graf Date: Thu, 01 Jul 2010 10:42:50 +0000 Subject: [PATCH 15/27] KVM: PPC: Expose magic page support to guest Message-Id: <1277980982-12433-16-git-send-email-agraf@suse.de> List-Id: References: <1277980982-12433-1-git-send-email-agraf@suse.de> In-Reply-To: <1277980982-12433-1-git-send-email-agraf@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ppc@vger.kernel.org Cc: KVM list , linuxppc-dev 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 --- 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