From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:59412) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RHDUP-0007JE-Cu for qemu-devel@nongnu.org; Fri, 21 Oct 2011 07:42:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RHDUO-0002FQ-9q for qemu-devel@nongnu.org; Fri, 21 Oct 2011 07:42:17 -0400 Received: from cantor2.suse.de ([195.135.220.15]:44324 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RHDUN-0002FH-Pg for qemu-devel@nongnu.org; Fri, 21 Oct 2011 07:42:16 -0400 Message-ID: <4EA15A94.7090406@suse.de> Date: Fri, 21 Oct 2011 13:42:12 +0200 From: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= MIME-Version: 1.0 References: <1319107715.4387.11.camel@dierdre> In-Reply-To: <1319107715.4387.11.camel@dierdre> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] [v3] hw/arm_gic.c: Fix save/load of irq_target array List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Dmitry Koshelev Cc: peter.maydell@linaro.org, qemu-devel@nongnu.org, paul@codesourcery.com Am 20.10.2011 12:48, schrieb Dmitry Koshelev: > irq_target array saving/loading is in the wrong loop. > Version bump. >=20 > Signed-off-by: Dmitry Koshelev Acked-by: Andreas F=C3=A4rber Applies cleanly now. Is there a particular use case that was broken before and works now, or did this turn up during code review only? Andreas > --- > hw/arm_gic.c | 16 ++++++++-------- > 1 files changed, 8 insertions(+), 8 deletions(-) >=20 > diff --git a/hw/arm_gic.c b/hw/arm_gic.c > index 83213dd..8dd8742 100644 > --- a/hw/arm_gic.c > +++ b/hw/arm_gic.c > @@ -658,9 +658,6 @@ static void gic_save(QEMUFile *f, void *opaque) > qemu_put_be32(f, s->enabled); > for (i =3D 0; i < NUM_CPU(s); i++) { > qemu_put_be32(f, s->cpu_enabled[i]); > -#ifndef NVIC > - qemu_put_be32(f, s->irq_target[i]); > -#endif > for (j =3D 0; j < 32; j++) > qemu_put_be32(f, s->priority1[j][i]); > for (j =3D 0; j < GIC_NIRQ; j++) > @@ -674,6 +671,9 @@ static void gic_save(QEMUFile *f, void *opaque) > qemu_put_be32(f, s->priority2[i]); > } > for (i =3D 0; i < GIC_NIRQ; i++) { > +#ifndef NVIC > + qemu_put_be32(f, s->irq_target[i]); > +#endif > qemu_put_byte(f, s->irq_state[i].enabled); > qemu_put_byte(f, s->irq_state[i].pending); > qemu_put_byte(f, s->irq_state[i].active); > @@ -689,15 +689,12 @@ static int gic_load(QEMUFile *f, void *opaque, in= t version_id) > int i; > int j; > =20 > - if (version_id !=3D 1) > + if (version_id !=3D 2) > return -EINVAL; > =20 > s->enabled =3D qemu_get_be32(f); > for (i =3D 0; i < NUM_CPU(s); i++) { > s->cpu_enabled[i] =3D qemu_get_be32(f); > -#ifndef NVIC > - s->irq_target[i] =3D qemu_get_be32(f); > -#endif > for (j =3D 0; j < 32; j++) > s->priority1[j][i] =3D qemu_get_be32(f); > for (j =3D 0; j < GIC_NIRQ; j++) > @@ -711,6 +708,9 @@ static int gic_load(QEMUFile *f, void *opaque, int = version_id) > s->priority2[i] =3D qemu_get_be32(f); > } > for (i =3D 0; i < GIC_NIRQ; i++) { > +#ifndef NVIC > + s->irq_target[i] =3D qemu_get_be32(f); > +#endif > s->irq_state[i].enabled =3D qemu_get_byte(f); > s->irq_state[i].pending =3D qemu_get_byte(f); > s->irq_state[i].active =3D qemu_get_byte(f); > @@ -739,5 +739,5 @@ static void gic_init(gic_state *s) > } > memory_region_init_io(&s->iomem, &gic_dist_ops, s, "gic_dist", 0x1= 000); > gic_reset(s); > - register_savevm(NULL, "arm_gic", -1, 1, gic_save, gic_load, s); > + register_savevm(NULL, "arm_gic", -1, 2, gic_save, gic_load, s); > } --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=C3=B6rffer; HRB 16746, AG N=C3= =BCrnberg