From: Cédric Le Goater Date: Tue, 22 Oct 2019 16:38:09 +0000 (+0200) Subject: ppc/pnv: Add a PnvChip pointer to PnvCore X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=aa5ac64b2394712b6269d0b15ba06c9c564dee92;p=qemu.git ppc/pnv: Add a PnvChip pointer to PnvCore We will use it to reset the interrupt presenter from the CPU reset handler. Signed-off-by: Cédric Le Goater Reviewed-by: Greg Kurz Message-Id: <20191022163812.330-5-clg@kaod.org> Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: David Gibson --- diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 9f981a4940..cc17bbfed8 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -222,6 +222,7 @@ static void pnv_core_realize(DeviceState *dev, Error **errp) "required link 'chip' not found: "); return; } + pc->chip = PNV_CHIP(chip); pc->threads = g_new(PowerPCCPU *, cc->nr_threads); for (i = 0; i < cc->nr_threads; i++) { @@ -243,7 +244,7 @@ static void pnv_core_realize(DeviceState *dev, Error **errp) } for (j = 0; j < cc->nr_threads; j++) { - pnv_realize_vcpu(pc->threads[j], PNV_CHIP(chip), &local_err); + pnv_realize_vcpu(pc->threads[j], pc->chip, &local_err); if (local_err) { goto err; } diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h index bfbd2ec42a..55eee95104 100644 --- a/include/hw/ppc/pnv_core.h +++ b/include/hw/ppc/pnv_core.h @@ -31,6 +31,8 @@ #define PNV_CORE_GET_CLASS(obj) \ OBJECT_GET_CLASS(PnvCoreClass, (obj), TYPE_PNV_CORE) +typedef struct PnvChip PnvChip; + typedef struct PnvCore { /*< private >*/ CPUCore parent_obj; @@ -38,6 +40,7 @@ typedef struct PnvCore { /*< public >*/ PowerPCCPU **threads; uint32_t pir; + PnvChip *chip; MemoryRegion xscom_regs; } PnvCore;