On Thu, Mar 16, 2017 at 03:35:06PM +0100, Cédric Le Goater wrote: > This is the second step to abstract the IRQ 'server' number of the > XICS layer. Now that the prereq cleanups have been done in the > previous patch, we can move down the 'cpu_dt_id' to 'cpu_index' > mapping in the sPAPR machine handler. > > Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson (excepting the tiny changes that will be necessary for suggested changes in 1/8) > --- > hw/intc/xics_spapr.c | 5 ++--- > hw/ppc/spapr.c | 3 ++- > hw/ppc/spapr_cpu_core.c | 2 +- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/hw/intc/xics_spapr.c b/hw/intc/xics_spapr.c > index 178b3adc8af7..9574cae14944 100644 > --- a/hw/intc/xics_spapr.c > +++ b/hw/intc/xics_spapr.c > @@ -52,9 +52,8 @@ static target_ulong h_cppr(PowerPCCPU *cpu, sPAPRMachineState *spapr, > static target_ulong h_ipi(PowerPCCPU *cpu, sPAPRMachineState *spapr, > target_ulong opcode, target_ulong *args) > { > - target_ulong server = xics_get_cpu_index_by_dt_id(args[0]); > target_ulong mfrr = args[1]; > - ICPState *icp = xics_icp_get(XICS_FABRIC(spapr), server); > + ICPState *icp = xics_icp_get(XICS_FABRIC(spapr), args[0]); > > if (!icp) { > return H_PARAMETER; > @@ -122,7 +121,7 @@ static void rtas_set_xive(PowerPCCPU *cpu, sPAPRMachineState *spapr, > } > > nr = rtas_ld(args, 0); > - server = xics_get_cpu_index_by_dt_id(rtas_ld(args, 1)); > + server = rtas_ld(args, 1); > priority = rtas_ld(args, 2); > > if (!ics_valid_irq(ics, nr) || !xics_icp_get(XICS_FABRIC(spapr), server) > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 6ee566d658f8..396490bc5dfc 100644 > --- a/hw/ppc/spapr.c > +++ b/hw/ppc/spapr.c > @@ -3024,9 +3024,10 @@ static void spapr_ics_resend(XICSFabric *dev) > ics_resend(spapr->ics); > } > > -static ICPState *spapr_icp_get(XICSFabric *xi, int server) > +static ICPState *spapr_icp_get(XICSFabric *xi, int cpu_dt_id) > { > sPAPRMachineState *spapr = SPAPR_MACHINE(xi); > + int server = xics_get_cpu_index_by_dt_id(cpu_dt_id); > > return (server < spapr->nr_servers) ? &spapr->icps[server] : NULL; > } > diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c > index 59f1cba6fba5..1d5e7fbeeb1f 100644 > --- a/hw/ppc/spapr_cpu_core.c > +++ b/hw/ppc/spapr_cpu_core.c > @@ -81,7 +81,7 @@ static void spapr_cpu_init(sPAPRMachineState *spapr, PowerPCCPU *cpu, > } > } > > - cpu->icp = xics_icp_get(xi, CPU(cpu)->cpu_index); > + cpu->icp = xics_icp_get(xi, cpu->cpu_dt_id); > xics_cpu_setup(xi, cpu); > > qemu_register_reset(spapr_cpu_reset, cpu); -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson