On 4/13/20 12:36 AM, Philippe Mathieu-Daudé wrote: > Coccinelle reported: > > $ spatch ... --timeout 60 --sp-file \ > scripts/coccinelle/simplify-init-realize-error_propagate.cocci > HANDLING: ./hw/arm/aspeed_ast2600.c > >>> possible moves from aspeed_soc_ast2600_init() to > aspeed_soc_ast2600_realize() in ./hw/arm/aspeed_ast2600.c:243 > > Move the calls using &error_fatal which don't depend on input > updated before realize() to init(). > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Cédric Le Goater <c...@kaod.org> > --- > v3: Typo 'depend of' -> 'depend on' (eblake) > --- > hw/arm/aspeed_ast2600.c | 41 ++++++++++++++++++++--------------------- > 1 file changed, 20 insertions(+), 21 deletions(-) > > diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c > index a860ab6a35..64512f95c9 100644 > --- a/hw/arm/aspeed_ast2600.c > +++ b/hw/arm/aspeed_ast2600.c > @@ -114,6 +114,16 @@ static qemu_irq aspeed_soc_get_irq(AspeedSoCState *s, > int ctrl) > return qdev_get_gpio_in(DEVICE(&s->a7mpcore), sc->irqmap[ctrl]); > } > > +/* > + * ASPEED ast2600 has 0xf as cluster ID > + * > + * > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388e/CIHEBGFG.html > + */ > +static uint64_t aspeed_calc_affinity(int cpu) > +{ > + return (0xf << ARM_AFF1_SHIFT) | cpu; > +} > + > static void aspeed_soc_ast2600_init(Object *obj) > { > AspeedSoCState *s = ASPEED_SOC(obj); > @@ -130,6 +140,13 @@ static void aspeed_soc_ast2600_init(Object *obj) > object_initialize_child(obj, "cpu[*]", OBJECT(&s->cpu[i]), > sizeof(s->cpu[i]), sc->cpu_type, > &error_abort, NULL); > + object_property_set_int(OBJECT(&s->cpu[i]), QEMU_PSCI_CONDUIT_SMC, > + "psci-conduit", &error_abort); > + object_property_set_int(OBJECT(&s->cpu[i]), aspeed_calc_affinity(i), > + "mp-affinity", &error_abort); > + > + object_property_set_int(OBJECT(&s->cpu[i]), 1125000000, "cntfrq", > + &error_abort); > } > > snprintf(typename, sizeof(typename), "aspeed.scu-%s", socname); > @@ -146,6 +163,9 @@ static void aspeed_soc_ast2600_init(Object *obj) > > sysbus_init_child_obj(obj, "a7mpcore", &s->a7mpcore, > sizeof(s->a7mpcore), TYPE_A15MPCORE_PRIV); > + object_property_set_int(OBJECT(&s->a7mpcore), > + ASPEED_SOC_AST2600_MAX_IRQ + GIC_INTERNAL, > + "num-irq", &error_abort); > > sysbus_init_child_obj(obj, "rtc", OBJECT(&s->rtc), sizeof(s->rtc), > TYPE_ASPEED_RTC); > @@ -230,16 +250,6 @@ static void aspeed_soc_ast2600_init(Object *obj) > TYPE_SYSBUS_SDHCI); > } > > -/* > - * ASPEED ast2600 has 0xf as cluster ID > - * > - * > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388e/CIHEBGFG.html > - */ > -static uint64_t aspeed_calc_affinity(int cpu) > -{ > - return (0xf << ARM_AFF1_SHIFT) | cpu; > -} > - > static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp) > { > int i; > @@ -264,19 +274,11 @@ static void aspeed_soc_ast2600_realize(DeviceState > *dev, Error **errp) > > /* CPU */ > for (i = 0; i < s->num_cpus; i++) { > - object_property_set_int(OBJECT(&s->cpu[i]), QEMU_PSCI_CONDUIT_SMC, > - "psci-conduit", &error_abort); > if (s->num_cpus > 1) { > object_property_set_int(OBJECT(&s->cpu[i]), > ASPEED_A7MPCORE_ADDR, > "reset-cbar", &error_abort); > } > - object_property_set_int(OBJECT(&s->cpu[i]), aspeed_calc_affinity(i), > - "mp-affinity", &error_abort); > - > - object_property_set_int(OBJECT(&s->cpu[i]), 1125000000, "cntfrq", > - &error_abort); > - > /* > * TODO: the secondary CPUs are started and a boot helper > * is needed when using -kernel > @@ -292,9 +294,6 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, > Error **errp) > /* A7MPCORE */ > object_property_set_int(OBJECT(&s->a7mpcore), s->num_cpus, "num-cpu", > &error_abort); > - object_property_set_int(OBJECT(&s->a7mpcore), > - ASPEED_SOC_AST2600_MAX_IRQ + GIC_INTERNAL, > - "num-irq", &error_abort); > > object_property_set_bool(OBJECT(&s->a7mpcore), true, "realized", > &error_abort); >