From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MRTji-0002iz-1t for qemu-devel@nongnu.org; Thu, 16 Jul 2009 12:23:10 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MRTjU-0002Yb-6S for qemu-devel@nongnu.org; Thu, 16 Jul 2009 12:23:02 -0400 Received: from [199.232.76.173] (port=49203 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MRTjU-0002YH-23 for qemu-devel@nongnu.org; Thu, 16 Jul 2009 12:22:56 -0400 Received: from cantor.suse.de ([195.135.220.2]:45331 helo=mx1.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 1MRTjT-0006rC-Bc for qemu-devel@nongnu.org; Thu, 16 Jul 2009 12:22:55 -0400 Received: from relay1.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 mx1.suse.de (Postfix) with ESMTP id E048993987 for ; Thu, 16 Jul 2009 18:22:53 +0200 (CEST) From: Alexander Graf Date: Thu, 16 Jul 2009 18:22:49 +0200 Message-Id: <1247761371-16980-3-git-send-email-agraf@suse.de> In-Reply-To: <1247761371-16980-2-git-send-email-agraf@suse.de> References: <1247761371-16980-1-git-send-email-agraf@suse.de> <1247761371-16980-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. --- 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<