From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ctXpk-0002sS-1r for qemu-devel@nongnu.org; Thu, 30 Mar 2017 07:01:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ctXpe-0008NA-4R for qemu-devel@nongnu.org; Thu, 30 Mar 2017 07:01:40 -0400 Date: Thu, 30 Mar 2017 17:46:05 +1100 From: David Gibson Message-ID: <20170330064605.GF22163@umbus> References: <1490795611-4762-1-git-send-email-clg@kaod.org> <1490795611-4762-3-git-send-email-clg@kaod.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="924gEkU1VlJlwnwX" Content-Disposition: inline In-Reply-To: <1490795611-4762-3-git-send-email-clg@kaod.org> Subject: Re: [Qemu-devel] [PATCH v4 2/9] spapr: move the IRQ server number mapping under the machine List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?iso-8859-1?Q?C=E9dric?= Le Goater Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org --924gEkU1VlJlwnwX Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Mar 29, 2017 at 03:53:24PM +0200, C=E9dric 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. >=20 > Signed-off-by: C=E9dric Le Goater > Reviewed-by: David Gibson > --- > 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(-) >=20 > diff --git a/hw/intc/xics_spapr.c b/hw/intc/xics_spapr.c > index 58f100d379cb..f05308b897f2 100644 > --- a/hw/intc/xics_spapr.c > +++ b/hw/intc/xics_spapr.c > @@ -52,9 +52,8 @@ static target_ulong h_cppr(PowerPCCPU *cpu, sPAPRMachin= eState *spapr, > static target_ulong h_ipi(PowerPCCPU *cpu, sPAPRMachineState *spapr, > target_ulong opcode, target_ulong *args) > { > - target_ulong server =3D xics_get_cpu_index_by_dt_id(args[0]); > target_ulong mfrr =3D args[1]; > - ICPState *icp =3D xics_icp_get(XICS_FABRIC(spapr), server); > + ICPState *icp =3D xics_icp_get(XICS_FABRIC(spapr), args[0]); > =20 > if (!icp) { > return H_PARAMETER; > @@ -122,7 +121,7 @@ static void rtas_set_xive(PowerPCCPU *cpu, sPAPRMachi= neState *spapr, > } > =20 > nr =3D rtas_ld(args, 0); > - server =3D xics_get_cpu_index_by_dt_id(rtas_ld(args, 1)); > + server =3D rtas_ld(args, 1); > priority =3D rtas_ld(args, 2); > =20 > if (!ics_valid_irq(ics, nr) || !xics_icp_get(XICS_FABRIC(spapr), ser= ver) > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c > index 8aecea3dd10c..b9f7f8607869 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); > } > =20 > -static ICPState *spapr_icp_get(XICSFabric *xi, int server) > +static ICPState *spapr_icp_get(XICSFabric *xi, int cpu_dt_id) > { > sPAPRMachineState *spapr =3D SPAPR_MACHINE(xi); > + int server =3D xics_get_cpu_index_by_dt_id(cpu_dt_id); The idea is good, but this is a bad name (as it was in the original version, too). The whole point here is that the XICS server number (as it appears in the ICS registers) is the input to this function, and we no longer assume that is equal to cpu_index. Seems we could just get the cpu object by dt_id here, then go to ICP(cpu->i= ntc). > 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 7db61bd72476..4e1a99591d19 100644 > --- a/hw/ppc/spapr_cpu_core.c > +++ b/hw/ppc/spapr_cpu_core.c > @@ -64,7 +64,7 @@ static void spapr_cpu_init(sPAPRMachineState *spapr, Po= werPCCPU *cpu, > { > CPUPPCState *env =3D &cpu->env; > XICSFabric *xi =3D XICS_FABRIC(spapr); > - ICPState *icp =3D xics_icp_get(xi, CPU(cpu)->cpu_index); > + ICPState *icp =3D xics_icp_get(xi, cpu->cpu_dt_id); > =20 > /* Set time-base frequency to 512 MHz */ > cpu_ppc_tb_init(env, SPAPR_TIMEBASE_FREQ); --=20 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 --924gEkU1VlJlwnwX Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJY3KmqAAoJEGw4ysog2bOSTUIP/35Bx1ogQbBQHIHCQ7tPZF69 ElVr7xU0jmbE9kMRnmoGT0kdkBoe8/1makdm+oYTg9uxJqGGPbrrPtUjVBfa0Cr/ bJcdx0uLhECkpcqQNp3Sl8qekBTU0mo6wCO1sNr/XnXcelQdYfRdbNanNWY9tbua bHUetqOemzkBt5Bo0OjwvbpS+qbnOGdSsOtpoYkE8uWumXmTaRlGCcSkEd178N4X 5iicleteYQ/TcZXAZ174ponne2xe61iysbuRkTlXPUb/w0Fct/FLhIrST3Vfa1vF GcJr47ClBTualUQ+Torlwabpiqkff13/EIhMGIceRGxcqvGg/m/L1WvJ5RFhaCT/ aMXp1VwXQXyixIcrIwXj5iMSf6pRjhjU3ey6vXjKQKXoEG2BWxz3QTYvoqTUD+JF kKTTR1tbEZuX6G923KZR5cXqwPgqL3tggOaY2zK/hqv4OoS7TOSHMYXCheRWm/FZ 0Cd7afAQVgzPjylMmWyY5vZ40jeqBe4hzSik76pOG70JVABIGSCyc3/1EUPK0QKc q6AQBakHbF4WMOwXfCiTT8Kc6kHWmYDiRdZF1FVbdsNH6hy14itMEbI0WRhw34o4 H40XW01KKTXW5Qj0kC65e9R/g3ZqsJsc9QmgEhtvmEZoI0rcV64RN7f5kDFW2mmj VAQjcSeCas5mMRkHni1D =r9po -----END PGP SIGNATURE----- --924gEkU1VlJlwnwX--