Message ID | 20220618110202.87735-7-danielhb413@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pnv-phb related cleanups | expand |
On 6/18/22 13:01, Daniel Henrique Barboza wrote: > pnv_ics_resend() is scrolling through all the child objects of the chip > to search for the PHBs. It's faster and simpler to just use the phbs[] > array. > > pnv_ics_resend_child() was folded into pnv_ics_resend() since it's too > simple to justify its own function. > > Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > hw/ppc/pnv.c | 22 ++++++++-------------- > 1 file changed, 8 insertions(+), 14 deletions(-) > > diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c > index ff7f803662..08136def8e 100644 > --- a/hw/ppc/pnv.c > +++ b/hw/ppc/pnv.c > @@ -1979,28 +1979,22 @@ PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id) > return NULL; > } > > -static int pnv_ics_resend_child(Object *child, void *opaque) > -{ > - PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3); > - > - if (phb3) { > - ics_resend(&phb3->lsis); > - ics_resend(ICS(&phb3->msis)); > - } > - return 0; > -} > - > static void pnv_ics_resend(XICSFabric *xi) > { > PnvMachineState *pnv = PNV_MACHINE(xi); > - int i; > + int i, j; > > for (i = 0; i < pnv->num_chips; i++) { > - PnvChip *chip = pnv->chips[i]; > Pnv8Chip *chip8 = PNV8_CHIP(pnv->chips[i]); > > ics_resend(&chip8->psi.ics); > - object_child_foreach(OBJECT(chip), pnv_ics_resend_child, NULL); > + > + for (j = 0; j < chip8->num_phbs; j++) { > + PnvPHB3 *phb3 = &chip8->phbs[j]; > + > + ics_resend(&phb3->lsis); > + ics_resend(ICS(&phb3->msis)); > + } > } > } >
On 18/06/2022 13:01, Daniel Henrique Barboza wrote: > pnv_ics_resend() is scrolling through all the child objects of the chip > to search for the PHBs. It's faster and simpler to just use the phbs[] > array. > > pnv_ics_resend_child() was folded into pnv_ics_resend() since it's too > simple to justify its own function. > > Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> > --- Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com> Fred > hw/ppc/pnv.c | 22 ++++++++-------------- > 1 file changed, 8 insertions(+), 14 deletions(-) > > diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c > index ff7f803662..08136def8e 100644 > --- a/hw/ppc/pnv.c > +++ b/hw/ppc/pnv.c > @@ -1979,28 +1979,22 @@ PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id) > return NULL; > } > > -static int pnv_ics_resend_child(Object *child, void *opaque) > -{ > - PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3); > - > - if (phb3) { > - ics_resend(&phb3->lsis); > - ics_resend(ICS(&phb3->msis)); > - } > - return 0; > -} > - > static void pnv_ics_resend(XICSFabric *xi) > { > PnvMachineState *pnv = PNV_MACHINE(xi); > - int i; > + int i, j; > > for (i = 0; i < pnv->num_chips; i++) { > - PnvChip *chip = pnv->chips[i]; > Pnv8Chip *chip8 = PNV8_CHIP(pnv->chips[i]); > > ics_resend(&chip8->psi.ics); > - object_child_foreach(OBJECT(chip), pnv_ics_resend_child, NULL); > + > + for (j = 0; j < chip8->num_phbs; j++) { > + PnvPHB3 *phb3 = &chip8->phbs[j]; > + > + ics_resend(&phb3->lsis); > + ics_resend(ICS(&phb3->msis)); > + } > } > } >
diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index ff7f803662..08136def8e 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -1979,28 +1979,22 @@ PnvChip *pnv_get_chip(PnvMachineState *pnv, uint32_t chip_id) return NULL; } -static int pnv_ics_resend_child(Object *child, void *opaque) -{ - PnvPHB3 *phb3 = (PnvPHB3 *) object_dynamic_cast(child, TYPE_PNV_PHB3); - - if (phb3) { - ics_resend(&phb3->lsis); - ics_resend(ICS(&phb3->msis)); - } - return 0; -} - static void pnv_ics_resend(XICSFabric *xi) { PnvMachineState *pnv = PNV_MACHINE(xi); - int i; + int i, j; for (i = 0; i < pnv->num_chips; i++) { - PnvChip *chip = pnv->chips[i]; Pnv8Chip *chip8 = PNV8_CHIP(pnv->chips[i]); ics_resend(&chip8->psi.ics); - object_child_foreach(OBJECT(chip), pnv_ics_resend_child, NULL); + + for (j = 0; j < chip8->num_phbs; j++) { + PnvPHB3 *phb3 = &chip8->phbs[j]; + + ics_resend(&phb3->lsis); + ics_resend(ICS(&phb3->msis)); + } } }
pnv_ics_resend() is scrolling through all the child objects of the chip to search for the PHBs. It's faster and simpler to just use the phbs[] array. pnv_ics_resend_child() was folded into pnv_ics_resend() since it's too simple to justify its own function. Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> --- hw/ppc/pnv.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-)