ppc/pnv: change the CPU machine_data presenter type to Object *
The POWER9 PowerNV machine will use a XIVE interrupt presenter type. Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20190306085032.15744-6-clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
a58a18adee
commit
956b8f468d
|
@ -684,7 +684,7 @@ static void pnv_chip_power8_intc_create(PnvChip *chip, PowerPCCPU *cpu,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pnv_cpu->icp = ICP(obj);
|
pnv_cpu->intc = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1086,7 +1086,7 @@ static ICPState *pnv_icp_get(XICSFabric *xi, int pir)
|
||||||
{
|
{
|
||||||
PowerPCCPU *cpu = ppc_get_vcpu_by_pir(pir);
|
PowerPCCPU *cpu = ppc_get_vcpu_by_pir(pir);
|
||||||
|
|
||||||
return cpu ? pnv_cpu_state(cpu)->icp : NULL;
|
return cpu ? ICP(pnv_cpu_state(cpu)->intc) : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pnv_pic_print_info(InterruptStatsProvider *obj,
|
static void pnv_pic_print_info(InterruptStatsProvider *obj,
|
||||||
|
@ -1099,7 +1099,7 @@ static void pnv_pic_print_info(InterruptStatsProvider *obj,
|
||||||
CPU_FOREACH(cs) {
|
CPU_FOREACH(cs) {
|
||||||
PowerPCCPU *cpu = POWERPC_CPU(cs);
|
PowerPCCPU *cpu = POWERPC_CPU(cs);
|
||||||
|
|
||||||
icp_pic_print_info(pnv_cpu_state(cpu)->icp, mon);
|
icp_pic_print_info(ICP(pnv_cpu_state(cpu)->intc), mon);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < pnv->num_chips; i++) {
|
for (i = 0; i < pnv->num_chips; i++) {
|
||||||
|
|
|
@ -198,7 +198,7 @@ static void pnv_unrealize_vcpu(PowerPCCPU *cpu)
|
||||||
PnvCPUState *pnv_cpu = pnv_cpu_state(cpu);
|
PnvCPUState *pnv_cpu = pnv_cpu_state(cpu);
|
||||||
|
|
||||||
qemu_unregister_reset(pnv_cpu_reset, cpu);
|
qemu_unregister_reset(pnv_cpu_reset, cpu);
|
||||||
object_unparent(OBJECT(pnv_cpu_state(cpu)->icp));
|
object_unparent(OBJECT(pnv_cpu_state(cpu)->intc));
|
||||||
cpu_remove_sync(CPU(cpu));
|
cpu_remove_sync(CPU(cpu));
|
||||||
cpu->machine_data = NULL;
|
cpu->machine_data = NULL;
|
||||||
g_free(pnv_cpu);
|
g_free(pnv_cpu);
|
||||||
|
|
|
@ -48,7 +48,7 @@ typedef struct PnvCoreClass {
|
||||||
#define PNV_CORE_TYPE_NAME(cpu_model) cpu_model PNV_CORE_TYPE_SUFFIX
|
#define PNV_CORE_TYPE_NAME(cpu_model) cpu_model PNV_CORE_TYPE_SUFFIX
|
||||||
|
|
||||||
typedef struct PnvCPUState {
|
typedef struct PnvCPUState {
|
||||||
struct ICPState *icp;
|
Object *intc;
|
||||||
} PnvCPUState;
|
} PnvCPUState;
|
||||||
|
|
||||||
static inline PnvCPUState *pnv_cpu_state(PowerPCCPU *cpu)
|
static inline PnvCPUState *pnv_cpu_state(PowerPCCPU *cpu)
|
||||||
|
|
Loading…
Reference in a new issue