On Thu, Dec 19, 2019 at 07:11:45PM +0100, Cédric Le Goater wrote: > This removes the need of the intermediate link under PSI to pass the > XICS link to the underlying ICSState object. > > Signed-off-by: Cédric Le Goater <c...@kaod.org> > Reviewed-by: Greg Kurz <gr...@kaod.org> > Signed-off-by: Cédric Le Goater <c...@kaod.org>
LGTM, but will need a rebase if we're dropping the previous patch. > --- > hw/ppc/pnv.c | 4 ++-- > hw/ppc/pnv_psi.c | 11 ++--------- > 2 files changed, 4 insertions(+), 11 deletions(-) > > diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c > index 1d8bfb164a32..163a658806e2 100644 > --- a/hw/ppc/pnv.c > +++ b/hw/ppc/pnv.c > @@ -999,8 +999,6 @@ static void pnv_chip_power8_instance_init(Object *obj) > > object_initialize_child(obj, "psi", &chip8->psi, sizeof(chip8->psi), > TYPE_PNV8_PSI, &error_abort, NULL); > - object_property_add_const_link(OBJECT(&chip8->psi), "xics", > - OBJECT(qdev_get_machine()), &error_abort); > > object_initialize_child(obj, "lpc", &chip8->lpc, sizeof(chip8->lpc), > TYPE_PNV8_LPC, &error_abort, NULL); > @@ -1069,6 +1067,8 @@ static void pnv_chip_power8_realize(DeviceState *dev, > Error **errp) > "bar", &error_fatal); > object_property_set_link(OBJECT(&chip8->psi), > OBJECT(chip->system_memory), > "system-memory", &error_abort); > + object_property_set_link(OBJECT(&chip8->psi), OBJECT(qdev_get_machine()), > + ICS_PROP_XICS, &error_abort); > object_property_set_bool(OBJECT(&chip8->psi), true, "realized", > &local_err); > if (local_err) { > error_propagate(errp, local_err); > diff --git a/hw/ppc/pnv_psi.c b/hw/ppc/pnv_psi.c > index 28d34e5c193a..d3124f673571 100644 > --- a/hw/ppc/pnv_psi.c > +++ b/hw/ppc/pnv_psi.c > @@ -470,6 +470,8 @@ static void pnv_psi_power8_instance_init(Object *obj) > > object_initialize_child(obj, "ics-psi", &psi8->ics, sizeof(psi8->ics), > TYPE_ICS, &error_abort, NULL); > + object_property_add_alias(obj, ICS_PROP_XICS, OBJECT(&psi8->ics), > + ICS_PROP_XICS, &error_abort); > } > > static const uint8_t irq_to_xivr[] = { > @@ -485,21 +487,12 @@ static void pnv_psi_power8_realize(DeviceState *dev, > Error **errp) > { > PnvPsi *psi = PNV_PSI(dev); > ICSState *ics = &PNV8_PSI(psi)->ics; > - Object *obj; > Error *err = NULL; > unsigned int i; > > assert(psi->system_memory); > > - obj = object_property_get_link(OBJECT(dev), "xics", &err); > - if (!obj) { > - error_setg(errp, "%s: required link 'xics' not found: %s", > - __func__, error_get_pretty(err)); > - return; > - } > - > /* Create PSI interrupt control source */ > - object_property_set_link(OBJECT(ics), obj, ICS_PROP_XICS, &error_abort); > object_property_set_int(OBJECT(ics), PSI_NUM_INTERRUPTS, "nr-irqs", > &err); > if (err) { > error_propagate(errp, err); -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature