spapr_rtas: Abstract rtas_query_cpu_stopped_state() with qemu_get_cpu()
authorAndreas Färber <afaerber@suse.de>
Wed, 29 May 2013 19:03:31 +0000 (21:03 +0200)
committerAndreas Färber <afaerber@suse.de>
Wed, 12 Jun 2013 21:43:26 +0000 (23:43 +0200)
Instead of looping over all CPUArchState, use a helper to obtain the
desired CPUState directly. Saves a CPUPPCState variable and QOM cast.

Signed-off-by: Andreas Färber <afaerber@suse.de>
hw/ppc/spapr_rtas.c

index 8ecaa5f..a1c3d20 100644 (file)
@@ -130,7 +130,6 @@ static void rtas_query_cpu_stopped_state(sPAPREnvironment *spapr,
                                          uint32_t nret, target_ulong rets)
 {
     target_ulong id;
-    CPUPPCState *env;
     CPUState *cpu;
 
     if (nargs != 1 || nret != 2) {
@@ -139,12 +138,8 @@ static void rtas_query_cpu_stopped_state(sPAPREnvironment *spapr,
     }
 
     id = rtas_ld(args, 0);
-    for (env = first_cpu; env; env = env->next_cpu) {
-        cpu = CPU(ppc_env_get_cpu(env));
-        if (cpu->cpu_index != id) {
-            continue;
-        }
-
+    cpu = qemu_get_cpu(id);
+    if (cpu != NULL) {
         if (cpu->halted) {
             rtas_st(rets, 1, 0);
         } else {