Message ID | 20191022134632.29098-5-clg@kaod.org |
---|---|
State | New |
Headers | show |
Series | ppc: reset the interrupt presenter from the CPU reset handler | expand |
On Tue, 22 Oct 2019 15:46:29 +0200 Cédric Le Goater <clg@kaod.org> wrote: > We will use it to reset the interrupt presenter from the CPU reset > handler. > > Signed-off-by: Cédric Le Goater <clg@kaod.org> > --- Reviewed-by: Greg Kurz <groug@kaod.org> > include/hw/ppc/pnv_core.h | 3 +++ > hw/ppc/pnv_core.c | 3 ++- > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/include/hw/ppc/pnv_core.h b/include/hw/ppc/pnv_core.h > index bfbd2ec42aa6..55eee95104da 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; > diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c > index 9f981a4940e6..cc17bbfed829 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 bfbd2ec42aa6..55eee95104da 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; diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 9f981a4940e6..cc17bbfed829 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; }
We will use it to reset the interrupt presenter from the CPU reset handler. Signed-off-by: Cédric Le Goater <clg@kaod.org> --- include/hw/ppc/pnv_core.h | 3 +++ hw/ppc/pnv_core.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-)