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));
> + }
> }
> }
>