From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1N7cds-0007L6-4L for qemu-devel@nongnu.org; Mon, 09 Nov 2009 17:23:20 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1N7cdn-0007JG-Af for qemu-devel@nongnu.org; Mon, 09 Nov 2009 17:23:19 -0500 Received: from [199.232.76.173] (port=53465 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1N7cdn-0007JB-5K for qemu-devel@nongnu.org; Mon, 09 Nov 2009 17:23:15 -0500 Received: from mail-pz0-f188.google.com ([209.85.222.188]:52842) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1N7cdm-0004Rl-Om for qemu-devel@nongnu.org; Mon, 09 Nov 2009 17:23:14 -0500 Received: by pzk26 with SMTP id 26so2405148pzk.4 for ; Mon, 09 Nov 2009 14:23:13 -0800 (PST) MIME-Version: 1.0 Sender: slightlyunconventional@gmail.com In-Reply-To: <4AF893BC.2040507@web.de> References: <204026d59328febd9789.1257800737@localhost.localdomain> <4AF893BC.2040507@web.de> Date: Mon, 9 Nov 2009 14:23:12 -0800 Message-ID: From: Hollis Blanchard Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] Re: [PATCH 1 of 2] kvm: Move KVM mp_state accessors to i386-specific code List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: kvm-ppc , Anthony Liguori , qemu-devel , Hollis Blanchard This is the technique Anthony requested this morning, rather than relocating mp_state. To be honest, I don't care which way it's fixed; this is at least the 3rd patch to solve this seemingly trivial problem. /home/hollisb/source/qemu-fresh.hg/kvm-all.c: In function 'kvm_put_mp_state= ': /home/hollisb/source/qemu-fresh.hg/kvm-all.c:212: error: 'struct CPUPPCState' has no member named 'mp_state' -Hollis On Mon, Nov 9, 2009 at 2:12 PM, Jan Kiszka wrote: > Hollis Blanchard wrote: >> Unbreaks PowerPC and S390 KVM builds. > > What breaks precisely? > > Note that KVM_GET/SET_MP_STATE are generic IOCTLs and supposed to be > shared with ia64 - one day. We could still move things back then, but > maybe we can handle the build issues already in place, specifically as > qemu-kvm is carrying this in generic code since ages. > > Jan > >> >> Signed-off-by: Hollis Blanchard >> >> diff --git a/kvm-all.c b/kvm-all.c >> --- a/kvm-all.c >> +++ b/kvm-all.c >> @@ -207,26 +207,6 @@ err: >> =A0 =A0 =A0return ret; >> =A0} >> >> -int kvm_put_mp_state(CPUState *env) >> -{ >> - =A0 =A0struct kvm_mp_state mp_state =3D { .mp_state =3D env->mp_state = }; >> - >> - =A0 =A0return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state); >> -} >> - >> -int kvm_get_mp_state(CPUState *env) >> -{ >> - =A0 =A0struct kvm_mp_state mp_state; >> - =A0 =A0int ret; >> - >> - =A0 =A0ret =3D kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state); >> - =A0 =A0if (ret < 0) { >> - =A0 =A0 =A0 =A0return ret; >> - =A0 =A0} >> - =A0 =A0env->mp_state =3D mp_state.mp_state; >> - =A0 =A0return 0; >> -} >> - >> =A0/* >> =A0 * dirty pages logging control >> =A0 */ >> diff --git a/kvm.h b/kvm.h >> --- a/kvm.h >> +++ b/kvm.h >> @@ -74,9 +74,6 @@ int kvm_vm_ioctl(KVMState *s, int type, >> >> =A0int kvm_vcpu_ioctl(CPUState *env, int type, ...); >> >> -int kvm_get_mp_state(CPUState *env); >> -int kvm_put_mp_state(CPUState *env); >> - >> =A0/* Arch specific hooks */ >> >> =A0int kvm_arch_post_run(CPUState *env, struct kvm_run *run); >> diff --git a/target-i386/kvm.c b/target-i386/kvm.c >> --- a/target-i386/kvm.c >> +++ b/target-i386/kvm.c >> @@ -659,6 +659,26 @@ static int kvm_get_msrs(CPUState *env) >> =A0 =A0 =A0return 0; >> =A0} >> >> +static int kvm_put_mp_state(CPUState *env) >> +{ >> + =A0 =A0struct kvm_mp_state mp_state =3D { .mp_state =3D env->mp_state = }; >> + >> + =A0 =A0return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state); >> +} >> + >> +static int kvm_get_mp_state(CPUState *env) >> +{ >> + =A0 =A0struct kvm_mp_state mp_state; >> + =A0 =A0int ret; >> + >> + =A0 =A0ret =3D kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state); >> + =A0 =A0if (ret < 0) { >> + =A0 =A0 =A0 =A0return ret; >> + =A0 =A0} >> + =A0 =A0env->mp_state =3D mp_state.mp_state; >> + =A0 =A0return 0; >> +} >> + >> =A0int kvm_arch_put_registers(CPUState *env) >> =A0{ >> =A0 =A0 =A0int ret; > > >