Message ID | 20191219073001.26790-4-clg@kaod.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ppc/pnv: remove the use of qdev_get_machine() and get_system_memory() | expand |
On Thu, 19 Dec 2019 08:29:54 +0100 Cédric Le Goater <clg@kaod.org> 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 <clg@kaod.org> > --- Reviewed-by: Greg Kurz <groug@kaod.org> > 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 2f611bfdda46..d6fe5ba13535 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);
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 2f611bfdda46..d6fe5ba13535 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);
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 <clg@kaod.org> --- hw/ppc/pnv.c | 4 ++-- hw/ppc/pnv_psi.c | 11 ++--------- 2 files changed, 4 insertions(+), 11 deletions(-)