From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42415) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Umvfg-0008K2-E6 for qemu-devel@nongnu.org; Wed, 12 Jun 2013 20:45:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Umvfd-0005Y6-ND for qemu-devel@nongnu.org; Wed, 12 Jun 2013 20:45:48 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Thu, 13 Jun 2013 02:45:29 +0200 Message-Id: <1371084329-814-18-git-send-email-afaerber@suse.de> In-Reply-To: <1371084329-814-1-git-send-email-afaerber@suse.de> References: <1371084329-814-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] [PULL 17/17] 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 Instead of looping over all CPUArchState, use a helper to obtain the desired CPUState. Free the "cpu" variable for PowerPCCPU, to access its CPUPPCState. Signed-off-by: Andreas F=C3=A4rber --- hw/ppc/spapr_rtas.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index a1c3d20..f4bd3c9 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; } @@ -192,9 +189,9 @@ static void rtas_start_cpu(sPAPREnvironment *spapr, 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