On 21 August 2013 15:12, Andreas Färber <afaerber@xxxxxxx> wrote: > - for (i = 0, cpu = first_cpu; i < s->num_cpu; i++, cpu = > cpu->next_cpu) { > + i = 0; > + CPU_FOREACH(cpu) { > DeviceState *cpudev = DEVICE(cpu); > int ppibase = s->num_irq - 32 + i * 32; > + > + if (i < s->num_cpu) { > + break; > + } > + > /* physical timer; we wire it up to the non-secure timer's ID, > * since a real A15 always has TrustZone but QEMU doesn't. > */ > @@ -83,6 +89,7 @@ static int a15mp_priv_init(SysBusDevice *dev) > /* virtual timer */ > qdev_connect_gpio_out(cpudev, 1, > qdev_get_gpio_in(s->gic, ppibase + 27)); > + i++; > } It seems a bit ugly to have to both enumerate the CPUs via CPU_FOREACH and update an index i simultaneously. Isn't there any way to either say "give me the CPU pointer for CPU i" or "give me the index i of this CPU" ? (there are a few bits post-arm_pic-removal that could be a little cleaner with one or the other of the above.) thanks -- PMM -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html