From: Peter Maydell <peter.maydell@linaro.org>
To: "Andreas Färber" <afaerber@suse.de>
Cc: "Andreas Färber" <andreas.faerber@web.de>,
"QEMU Developers" <qemu-devel@nongnu.org>,
"Paul Brook" <paul@codesourcery.com>
Subject: Re: [Qemu-devel] [PATCH v3 11/24] cpu/a15mpcore: Embed GICState
Date: Wed, 21 Aug 2013 22:05:29 +0100 [thread overview]
Message-ID: <CAFEAcA8h15KPj+56PecaPG1OK404cgR4YprZyFuQZwDFXBCFig@mail.gmail.com> (raw)
In-Reply-To: <1377012076-7035-12-git-send-email-afaerber@suse.de>
On 20 August 2013 16:21, Andreas Färber <afaerber@suse.de> wrote:
> From: Andreas Färber <andreas.faerber@web.de>
>
> This covers both emulated and KVM GIC.
> @@ -35,40 +36,48 @@ typedef struct A15MPPrivState {
> uint32_t num_cpu;
> uint32_t num_irq;
> MemoryRegion container;
> - DeviceState *gic;
> +
> + GICState gic;
> } A15MPPrivState;
> static void a15mp_priv_initfn(Object *obj)
> {
> SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
> A15MPPrivState *s = A15MPCORE_PRIV(obj);
> + DeviceState *gicdev;
> + const char *gictype = "arm_gic";
> +
> + if (kvm_irqchip_in_kernel()) {
> + gictype = "kvm-arm-gic";
> + }
>
> memory_region_init(&s->container, obj, "a15mp-priv-container", 0x8000);
> sysbus_init_mmio(sbd, &s->container);
> +
> + object_initialize(&s->gic, gictype);
> + gicdev = DEVICE(&s->gic);
> + qdev_set_parent_bus(gicdev, sysbus_get_default());
> + qdev_prop_set_uint32(gicdev, "revision", 2);
So this is basically assuming that kvm-arm-gic and arm-gic
both have an instance struct of exactly the same size,
even though they're different classes (they happen to be
so at the moment, because neither adds extra state beyond
that needed by common base class). Is that really a good
idea? (If it ever becomes not true we get silent memory
corruption here...)
-- PMM
next prev parent reply other threads:[~2013-08-21 21:06 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-20 15:20 [Qemu-devel] [PATCH v3 00/24] arm: ARM11MPCore+A9MPCore+A15MPCore QOM'ification Andreas Färber
2013-08-20 15:20 ` [Qemu-devel] [PATCH v3 01/24] cpu/a9mpcore: Split off instance_init Andreas Färber
2013-08-20 15:20 ` [Qemu-devel] [PATCH v3 02/24] intc/arm_gic: Extract headers hw/intc/arm_gic{, _common}.h Andreas Färber
2013-08-20 15:20 ` [Qemu-devel] [PATCH v3 03/24] cpu/a9mpcore: Embed GICState Andreas Färber
2013-08-20 15:20 ` [Qemu-devel] [PATCH v3 04/24] misc/a9scu: QOM cleanups Andreas Färber
2013-08-20 15:20 ` [Qemu-devel] [PATCH v3 05/24] cpu/a9mpcore: Embed A9SCUState Andreas Färber
2013-08-20 15:20 ` [Qemu-devel] [PATCH v3 06/24] timer/arm_mptimer: Convert to QOM realize Andreas Färber
2013-08-20 15:20 ` [Qemu-devel] [PATCH v3 07/24] cpu/a9mpcore: Embed ARMMPTimerState Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 08/24] cpu/a9mpcore: Convert to QOM realize Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 09/24] cpu/a9mpcore: Prepare for QOM embedding Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 10/24] cpu/a15mpcore: Split off instance_init Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 11/24] cpu/a15mpcore: Embed GICState Andreas Färber
2013-08-21 21:05 ` Peter Maydell [this message]
2013-08-22 10:56 ` Andreas Färber
2013-08-22 11:41 ` Peter Maydell
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 12/24] cpu/a15mpcore: Convert to QOM realize Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 13/24] cpu/a15mpcore: Prepare for QOM embedding Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 14/24] a9scu: Build only once Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 15/24] arm11mpcore: Fix typo in MemoryRegion name Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 16/24] arm11mpcore: Drop unused fields Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 17/24] arm11mpcore: Create container MemoryRegion in instance_init Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 18/24] arm11mpcore: Split off SCU device Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 19/24] arm11mpcore: Convert ARM11MPCorePriveState to QOM realize Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 20/24] realview_gic: Convert " Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 21/24] realview_gic: Prepare for QOM embedding Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 22/24] arm11mpcore: Convert mpcore_rirq_state to QOM realize Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 23/24] arm11mpcore: Prepare for QOM embedding Andreas Färber
2013-08-20 15:21 ` [Qemu-devel] [PATCH v3 24/24] arm11mpcore: Split off RealView MPCore Andreas Färber
2013-08-21 21:01 ` [Qemu-devel] [PATCH v3 00/24] arm: ARM11MPCore+A9MPCore+A15MPCore QOM'ification Peter Maydell
2013-08-22 10:34 ` Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAFEAcA8h15KPj+56PecaPG1OK404cgR4YprZyFuQZwDFXBCFig@mail.gmail.com \
--to=peter.maydell@linaro.org \
--cc=afaerber@suse.de \
--cc=andreas.faerber@web.de \
--cc=paul@codesourcery.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).