Message ID | 1370805206-26574-9-git-send-email-afaerber@suse.de |
---|---|
State | New |
Headers | show |
Reviewed-by: liguang <lig.fnst@cn.fujitsu.com> 在 2013-06-09日的 21:12 +0200,Andreas Färber写道: > Use new qemu_for_each_cpu(). > > Signed-off-by: Andreas Färber <afaerber@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
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
Use new qemu_for_each_cpu(). Signed-off-by: Andreas Färber <afaerber@suse.de> --- cpus.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-)