No functional change, just a reduction of CPU loops. The mon_cpu field is left untouched for now since changing that requires a number of larger prerequisites, including cpu_synchronize_state() and mon_get_cpu().
Signed-off-by: Andreas Färber <afaer...@suse.de> --- monitor.c | 13 +++++-------- 1 Datei geändert, 5 Zeilen hinzugefügt(+), 8 Zeilen entfernt(-) diff --git a/monitor.c b/monitor.c index 20bd19b..cae33c4 100644 --- a/monitor.c +++ b/monitor.c @@ -855,17 +855,14 @@ EventInfoList *qmp_query_events(Error **errp) /* set the current CPU defined by the user */ int monitor_set_cpu(int cpu_index) { - CPUArchState *env; CPUState *cpu; - for (env = first_cpu; env != NULL; env = env->next_cpu) { - cpu = ENV_GET_CPU(env); - if (cpu->cpu_index == cpu_index) { - cur_mon->mon_cpu = env; - return 0; - } + cpu = qemu_get_cpu(cpu_index); + if (cpu == NULL) { + return -1; } - return -1; + cur_mon->mon_cpu = cpu->env_ptr; + return 0; } static CPUArchState *mon_get_cpu(void) -- 1.7.10.4