Message ID | 20220113192952.911188-14-danielhb413@gmail.com |
---|---|
State | New |
Headers | show |
Series | remove PnvPhb4PecStack from Powernv9 | expand |
On 1/13/22 20:29, Daniel Henrique Barboza wrote: > This pointer was being used for two reasons: pnv_phb4_update_regions() > was using it to access the PHB and phb4_realize() was using it as a way > to determine if the PHB was user created. > > We can determine if the PHB is user created via phb->pec, introduced in > the previous patch, and pnv_phb4_update_regions() is no longer using > stack->phb. > > Remove the pointer from the PnvPHB4 device. Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > > Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> > --- > hw/pci-host/pnv_phb4.c | 17 +++++------------ > hw/pci-host/pnv_phb4_pec.c | 2 -- > include/hw/pci-host/pnv_phb4.h | 2 -- > 3 files changed, 5 insertions(+), 16 deletions(-) > > diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c > index c9117221b2..25b4248776 100644 > --- a/hw/pci-host/pnv_phb4.c > +++ b/hw/pci-host/pnv_phb4.c > @@ -1549,9 +1549,10 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) > char name[32]; > > /* User created PHB */ > - if (!phb->stack) { > + if (!phb->pec) { > PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine()); > PnvChip *chip = pnv_get_chip(pnv, phb->chip_id); > + PnvPhb4PecStack *stack; > PnvPhb4PecClass *pecc; > BusState *s; > > @@ -1560,7 +1561,7 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) > return; > } > > - phb->stack = pnv_phb4_get_stack(chip, phb, &local_err); > + stack = pnv_phb4_get_stack(chip, phb, &local_err); > if (local_err) { > error_propagate(errp, local_err); > return; > @@ -1570,19 +1571,13 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) > * All other phb properties but 'pec', 'version' and > * 'phb-number' are already set. > */ > - object_property_set_link(OBJECT(phb), "pec", OBJECT(phb->stack->pec), > + object_property_set_link(OBJECT(phb), "pec", OBJECT(stack->pec), > &error_abort); > pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec); > object_property_set_int(OBJECT(phb), "version", pecc->version, > &error_fatal); > object_property_set_int(OBJECT(phb), "phb-number", > - phb->stack->stack_no, &error_abort); > - > - /* > - * Assign stack->phb since pnv_phb4_update_regions() uses it > - * to access the phb. > - */ > - phb->stack->phb = phb; > + stack->stack_no, &error_abort); > > /* > * Reparent user created devices to the chip to build > @@ -1686,8 +1681,6 @@ static Property pnv_phb4_properties[] = { > DEFINE_PROP_UINT32("index", PnvPHB4, phb_id, 0), > DEFINE_PROP_UINT32("chip-id", PnvPHB4, chip_id, 0), > DEFINE_PROP_UINT64("version", PnvPHB4, version, 0), > - DEFINE_PROP_LINK("stack", PnvPHB4, stack, TYPE_PNV_PHB4_PEC_STACK, > - PnvPhb4PecStack *), > DEFINE_PROP_LINK("pec", PnvPHB4, pec, TYPE_PNV_PHB4_PEC, > PnvPhb4PecState *), > DEFINE_PROP_END_OF_LIST(), > diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c > index 36cc4ffe7c..1de0eb9adc 100644 > --- a/hw/pci-host/pnv_phb4_pec.c > +++ b/hw/pci-host/pnv_phb4_pec.c > @@ -295,8 +295,6 @@ static void pnv_pec_stk_default_phb_realize(PnvPhb4PecStack *stack, > &error_fatal); > object_property_set_int(OBJECT(stack->phb), "version", pecc->version, > &error_fatal); > - object_property_set_link(OBJECT(stack->phb), "stack", OBJECT(stack), > - &error_abort); > > if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) { > return; > diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h > index f66bc76b78..90eb4575f8 100644 > --- a/include/hw/pci-host/pnv_phb4.h > +++ b/include/hw/pci-host/pnv_phb4.h > @@ -154,8 +154,6 @@ struct PnvPHB4 { > XiveSource xsrc; > qemu_irq *qirqs; > > - PnvPhb4PecStack *stack; > - > QLIST_HEAD(, PnvPhb4DMASpace) dma_spaces; > }; > >
diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c index c9117221b2..25b4248776 100644 --- a/hw/pci-host/pnv_phb4.c +++ b/hw/pci-host/pnv_phb4.c @@ -1549,9 +1549,10 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) char name[32]; /* User created PHB */ - if (!phb->stack) { + if (!phb->pec) { PnvMachineState *pnv = PNV_MACHINE(qdev_get_machine()); PnvChip *chip = pnv_get_chip(pnv, phb->chip_id); + PnvPhb4PecStack *stack; PnvPhb4PecClass *pecc; BusState *s; @@ -1560,7 +1561,7 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) return; } - phb->stack = pnv_phb4_get_stack(chip, phb, &local_err); + stack = pnv_phb4_get_stack(chip, phb, &local_err); if (local_err) { error_propagate(errp, local_err); return; @@ -1570,19 +1571,13 @@ static void pnv_phb4_realize(DeviceState *dev, Error **errp) * All other phb properties but 'pec', 'version' and * 'phb-number' are already set. */ - object_property_set_link(OBJECT(phb), "pec", OBJECT(phb->stack->pec), + object_property_set_link(OBJECT(phb), "pec", OBJECT(stack->pec), &error_abort); pecc = PNV_PHB4_PEC_GET_CLASS(phb->pec); object_property_set_int(OBJECT(phb), "version", pecc->version, &error_fatal); object_property_set_int(OBJECT(phb), "phb-number", - phb->stack->stack_no, &error_abort); - - /* - * Assign stack->phb since pnv_phb4_update_regions() uses it - * to access the phb. - */ - phb->stack->phb = phb; + stack->stack_no, &error_abort); /* * Reparent user created devices to the chip to build @@ -1686,8 +1681,6 @@ static Property pnv_phb4_properties[] = { DEFINE_PROP_UINT32("index", PnvPHB4, phb_id, 0), DEFINE_PROP_UINT32("chip-id", PnvPHB4, chip_id, 0), DEFINE_PROP_UINT64("version", PnvPHB4, version, 0), - DEFINE_PROP_LINK("stack", PnvPHB4, stack, TYPE_PNV_PHB4_PEC_STACK, - PnvPhb4PecStack *), DEFINE_PROP_LINK("pec", PnvPHB4, pec, TYPE_PNV_PHB4_PEC, PnvPhb4PecState *), DEFINE_PROP_END_OF_LIST(), diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c index 36cc4ffe7c..1de0eb9adc 100644 --- a/hw/pci-host/pnv_phb4_pec.c +++ b/hw/pci-host/pnv_phb4_pec.c @@ -295,8 +295,6 @@ static void pnv_pec_stk_default_phb_realize(PnvPhb4PecStack *stack, &error_fatal); object_property_set_int(OBJECT(stack->phb), "version", pecc->version, &error_fatal); - object_property_set_link(OBJECT(stack->phb), "stack", OBJECT(stack), - &error_abort); if (!sysbus_realize(SYS_BUS_DEVICE(stack->phb), errp)) { return; diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h index f66bc76b78..90eb4575f8 100644 --- a/include/hw/pci-host/pnv_phb4.h +++ b/include/hw/pci-host/pnv_phb4.h @@ -154,8 +154,6 @@ struct PnvPHB4 { XiveSource xsrc; qemu_irq *qirqs; - PnvPhb4PecStack *stack; - QLIST_HEAD(, PnvPhb4DMASpace) dma_spaces; };
This pointer was being used for two reasons: pnv_phb4_update_regions() was using it to access the PHB and phb4_realize() was using it as a way to determine if the PHB was user created. We can determine if the PHB is user created via phb->pec, introduced in the previous patch, and pnv_phb4_update_regions() is no longer using stack->phb. Remove the pointer from the PnvPHB4 device. Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> --- hw/pci-host/pnv_phb4.c | 17 +++++------------ hw/pci-host/pnv_phb4_pec.c | 2 -- include/hw/pci-host/pnv_phb4.h | 2 -- 3 files changed, 5 insertions(+), 16 deletions(-)