From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ull4l-0001It-VX for qemu-devel@nongnu.org; Sun, 09 Jun 2013 15:14:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ull4k-0000t5-Im for qemu-devel@nongnu.org; Sun, 09 Jun 2013 15:14:51 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sun, 9 Jun 2013 21:13:23 +0200 Message-Id: <1370805206-26574-57-git-send-email-afaerber@suse.de> In-Reply-To: <1370805206-26574-1-git-send-email-afaerber@suse.de> References: <1370805206-26574-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH qom-cpu 56/59] spapr_rtas: Abstract rtas_start_cpu() with qemu_get_cpu() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Alexander Graf , "open list:sPAPR" , =?UTF-8?q?Andreas=20F=C3=A4rber?= , David Gibson Signed-off-by: Andreas F=C3=A4rber --- hw/ppc/spapr_rtas.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index a67ffcd..42ed7dc 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -160,8 +160,7 @@ static void rtas_start_cpu(sPAPREnvironment *spapr, uint32_t nret, target_ulong rets) { target_ulong id, start, r3; - CPUState *cpu; - CPUPPCState *env; + CPUState *cs; =20 if (nargs !=3D 3 || nret !=3D 1) { rtas_st(rets, 0, -3); @@ -172,14 +171,12 @@ static void rtas_start_cpu(sPAPREnvironment *spapr, start =3D rtas_ld(args, 1); r3 =3D rtas_ld(args, 2); =20 - for (env =3D first_cpu; env; env =3D env->next_cpu) { - cpu =3D CPU(ppc_env_get_cpu(env)); - - if (cpu->cpu_index !=3D id) { - continue; - } + cs =3D qemu_get_cpu(id); + if (cs !=3D NULL) { + PowerPCCPU *cpu =3D POWERPC_CPU(cs); + CPUPPCState *env =3D &cpu->env; =20 - if (!cpu->halted) { + if (!cs->halted) { rtas_st(rets, 0, -1); return; } @@ -187,14 +184,14 @@ static void rtas_start_cpu(sPAPREnvironment *spapr, /* This will make sure qemu state is up to date with kvm, and * mark it dirty so our changes get flushed back before the * new cpu enters */ - kvm_cpu_synchronize_state(cpu); + kvm_cpu_synchronize_state(cs); =20 env->msr =3D (1ULL << MSR_SF) | (1ULL << MSR_ME); env->nip =3D start; env->gpr[3] =3D r3; - cpu->halted =3D 0; + cs->halted =3D 0; =20 - qemu_cpu_kick(cpu); + qemu_cpu_kick(cs); =20 rtas_st(rets, 0, 0); return; --=20 1.8.1.4