From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MRV89-00054H-0i for qemu-devel@nongnu.org; Thu, 16 Jul 2009 13:52:29 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MRV82-000508-TG for qemu-devel@nongnu.org; Thu, 16 Jul 2009 13:52:27 -0400 Received: from [199.232.76.173] (port=48913 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MRV82-0004zm-0n for qemu-devel@nongnu.org; Thu, 16 Jul 2009 13:52:22 -0400 Received: from cantor2.suse.de ([195.135.220.15]:53723 helo=mx2.suse.de) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MRV81-0006ij-Al for qemu-devel@nongnu.org; Thu, 16 Jul 2009 13:52:21 -0400 Received: from relay2.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id B6F81867E2 for ; Thu, 16 Jul 2009 19:52:19 +0200 (CEST) From: Alexander Graf Date: Thu, 16 Jul 2009 19:52:14 +0200 Message-Id: <1247766736-17197-3-git-send-email-agraf@suse.de> In-Reply-To: <1247766736-17197-2-git-send-email-agraf@suse.de> References: <1247766736-17197-1-git-send-email-agraf@suse.de> <1247766736-17197-2-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 2/4] Set PVR in sregs List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org We need to tell the kernel about some initial CPU state we don't have yet, so let's use the "sregs" IOCTL for that and simply put the Processor Version Register in there. Now the kernel knows which guest CPU to virtualize. Signed-off-by: Alexander Graf --- target-ppc/kvm.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c index acbb1ab..24828bd 100644 --- a/target-ppc/kvm.c +++ b/target-ppc/kvm.c @@ -44,7 +44,13 @@ int kvm_arch_init(KVMState *s, int smp_cpus) int kvm_arch_init_vcpu(CPUState *cenv) { - return 0; + int ret = 0; + struct kvm_sregs sregs; + + sregs.pvr = cenv->spr[SPR_PVR]; + ret = kvm_vcpu_ioctl(cenv, KVM_SET_SREGS, &sregs); + + return ret; } int kvm_arch_put_registers(CPUState *env) @@ -127,7 +133,8 @@ int kvm_arch_pre_run(CPUState *env, struct kvm_run *run) * interrupt, reset, etc) in PPC-specific env->irq_input_state. */ if (run->ready_for_interrupt_injection && (env->interrupt_request & CPU_INTERRUPT_HARD) && - (env->irq_input_state & (1<irq_input_state & (1<irq_input_state & (1<