@@ -437,22 +437,23 @@ void ppce500_irq_init(CPUPPCState *env)
cpu, PPCE500_INPUT_NB);
}
-/* Enable or Disable the E500 EPR capability */
-void ppce500_set_mpic_proxy(bool enabled)
+static void ppce500_set_mpic_proxy_one(CPUState *cs, void *data)
{
- CPUPPCState *env;
+ bool *enabled = data;
+ PowerPCCPU *cpu = POWERPC_CPU(cs);
- for (env = first_cpu; env != NULL; env = env->next_cpu) {
- PowerPCCPU *cpu = ppc_env_get_cpu(env);
- CPUState *cs = CPU(cpu);
-
- env->mpic_proxy = enabled;
- if (kvm_enabled()) {
- kvmppc_set_mpic_proxy(POWERPC_CPU(cs), enabled);
- }
+ cpu->env.mpic_proxy = *enabled;
+ if (kvm_enabled()) {
+ kvmppc_set_mpic_proxy(cpu, *enabled);
}
}
+/* Enable or Disable the E500 EPR capability */
+void ppce500_set_mpic_proxy(bool enabled)
+{
+ qemu_for_each_cpu(ppce500_set_mpic_proxy_one, &enabled);
+}
+
/*****************************************************************************/
/* PowerPC time base and decrementer emulation */
Signed-off-by: Andreas Färber <afaerber@suse.de> --- hw/ppc/ppc.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-)