On 1/3/22 06:08, Cédric Le Goater wrote:
On 12/28/21 20:38, Daniel Henrique Barboza wrote:
Relying on stack->phb to write the xscom DT of the PEC is something that
we won't be able to do with user creatable pnv-phb4 devices.

Hopefully, this can be done by using pnv_pec_get_phb_id(), which is
already used by pnv_pec_realize() to set the phb-id of the stack. Use
the same idea in pnv_pec_dt_xscom() to write ibm,phb-index without the
need to accessing stack->phb, since stack->phb is not granted to be !=
NULL when user creatable phbs are introduced.

Signed-off-by: Daniel Henrique Barboza <danielhb...@gmail.com>

Reviewed-by: Cédric Le Goater <c...@kaod.org>

Couldn't we do that already without the previous change ?

Yes. In fact I'll postpone the previous patch until we actually need it (in this
series it would be patch 15).


Thanks,

Daniel


Thanks,

C.


---
  hw/pci-host/pnv_phb4_pec.c | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/hw/pci-host/pnv_phb4_pec.c b/hw/pci-host/pnv_phb4_pec.c
index 4f6db26633..56ffd446ab 100644
--- a/hw/pci-host/pnv_phb4_pec.c
+++ b/hw/pci-host/pnv_phb4_pec.c
@@ -466,8 +466,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void 
*fdt,
                        pecc->compat_size)));
      for (i = 0; i < pec->num_stacks; i++) {
-        PnvPhb4PecStack *stack = &pec->stacks[i];
-        PnvPHB4 *phb = &stack->phb;
+        int phb_id =  pnv_pec_get_phb_id(pec, i);
          int stk_offset;
          name = g_strdup_printf("stack@%x", i);
@@ -477,7 +476,7 @@ static int pnv_pec_dt_xscom(PnvXScomInterface *dev, void 
*fdt,
          _FDT((fdt_setprop(fdt, stk_offset, "compatible", pecc->stk_compat,
                            pecc->stk_compat_size)));
          _FDT((fdt_setprop_cell(fdt, stk_offset, "reg", i)));
-        _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", 
phb->phb_id)));
+        _FDT((fdt_setprop_cell(fdt, stk_offset, "ibm,phb-index", phb_id)));
      }
      return 0;



Reply via email to