summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Färber <afaerber@suse.de>2013-05-29 21:03:31 +0200
committerAndreas Färber <afaerber@suse.de>2013-06-12 23:43:26 +0200
commit05318a858c1212d845d03f924e6ab5f22ab51ab6 (patch)
tree23c1ef0d000306ac321a287ca2e205a93029f708
parent11ed09cf0753c1288a97f00138fc4534135442bb (diff)
downloadqemu-05318a858c1212d845d03f924e6ab5f22ab51ab6.tar.gz
qemu-05318a858c1212d845d03f924e6ab5f22ab51ab6.tar.bz2
qemu-05318a858c1212d845d03f924e6ab5f22ab51ab6.zip
spapr_rtas: Abstract rtas_query_cpu_stopped_state() with qemu_get_cpu()
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>
-rw-r--r--hw/ppc/spapr_rtas.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c
index 8ecaa5f8ec..a1c3d204b6 100644
--- a/hw/ppc/spapr_rtas.c
+++ b/hw/ppc/spapr_rtas.c
@@ -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 {