Use new qemu_for_each_cpu(). Signed-off-by: Andreas Färber <afaer...@suse.de> --- cpus.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/cpus.c b/cpus.c index 24ee974..1975c5c 100644 --- a/cpus.c +++ b/cpus.c @@ -1331,18 +1331,24 @@ exit: fclose(f); } -void qmp_inject_nmi(Error **errp) -{ #if defined(TARGET_I386) - CPUArchState *env; +static void qmp_inject_one_nmi(CPUState *cs, void *data) +{ + X86CPU *cpu = X86_CPU(cs); + CPUX86State *env = &cpu->env; - for (env = first_cpu; env != NULL; env = env->next_cpu) { - if (!env->apic_state) { - cpu_interrupt(CPU(x86_env_get_cpu(env)), CPU_INTERRUPT_NMI); - } else { - apic_deliver_nmi(env->apic_state); - } + if (!env->apic_state) { + cpu_interrupt(cs, CPU_INTERRUPT_NMI); + } else { + apic_deliver_nmi(env->apic_state); } +} +#endif + +void qmp_inject_nmi(Error **errp) +{ +#if defined(TARGET_I386) + qemu_for_each_cpu(qmp_inject_one_nmi, NULL); #else error_set(errp, QERR_UNSUPPORTED); #endif -- 1.8.1.4