qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 06/11] ppc/pnv: make pnv_ics_resend() use chip8->phbs[]


From: Frederic Barrat
Subject: Re: [PATCH 06/11] ppc/pnv: make pnv_ics_resend() use chip8->phbs[]
Date: Tue, 14 Jun 2022 11:24:38 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0



On 13/06/2022 17:44, 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 <danielhb@linux.ibm.com>
---
  hw/ppc/pnv.c | 22 +++++++---------------
  1 file changed, 7 insertions(+), 15 deletions(-)

diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 05a8d5034f..d70deffa1d 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -1993,28 +1993,20 @@ 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);


That line shouldn't be dropped, right?

  Fred


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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]