[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_r
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_region_init from instance_init |
Date: |
Thu, 01 Oct 2015 09:39:37 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Paolo Bonzini <address@hidden> writes:
> On 30/09/2015 10:57, Markus Armbruster wrote:
>> Paolo Bonzini <address@hidden> writes:
>>
>>> > This causes the region to outlive the object, because it attaches the
>>> > region to /machine. This is not nice for the "realize" method, but
>>> > much worse for "instance_init" because it can cause dangling pointers
>>> > after a simple object_new/object_unref pair.
>>> >
>>> > Reported-by: Markus Armbruster <address@hidden>
>>> > Signed-off-by: Paolo Bonzini <address@hidden>
>> One more: pxa2xx_pcmcia_initfn().
>>
>> The ones you fix are
>> Tested-by: Markus Armbruster <address@hidden>
>
> Can you fix it up and take it through your series?
Like this?
>From 14ce586f3e8a7ced07ec37ed60ad71ca55f41a08 Mon Sep 17 00:00:00 2001
From: Markus Armbruster <address@hidden>
Date: Thu, 1 Oct 2015 09:36:39 +0200
Subject: [PATCH] fixup! hw: do not pass NULL to memory_region_init from
instance_init
---
hw/pcmcia/pxa2xx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/hw/pcmcia/pxa2xx.c b/hw/pcmcia/pxa2xx.c
index e0de8a6..23649bc 100644
--- a/hw/pcmcia/pxa2xx.c
+++ b/hw/pcmcia/pxa2xx.c
@@ -163,7 +163,7 @@ static void pxa2xx_pcmcia_initfn(Object *obj)
sysbus_init_mmio(sbd, &s->container_mem);
/* Socket I/O Memory Space */
- memory_region_init_io(&s->iomem, NULL, &pxa2xx_pcmcia_io_ops, s,
+ memory_region_init_io(&s->iomem, obj, &pxa2xx_pcmcia_io_ops, s,
"pxa2xx-pcmcia-io", 0x04000000);
memory_region_add_subregion(&s->container_mem, 0x00000000,
&s->iomem);
@@ -171,13 +171,13 @@ static void pxa2xx_pcmcia_initfn(Object *obj)
/* Then next 64 MB is reserved */
/* Socket Attribute Memory Space */
- memory_region_init_io(&s->attr_iomem, NULL, &pxa2xx_pcmcia_attr_ops, s,
+ memory_region_init_io(&s->attr_iomem, obj, &pxa2xx_pcmcia_attr_ops, s,
"pxa2xx-pcmcia-attribute", 0x04000000);
memory_region_add_subregion(&s->container_mem, 0x08000000,
&s->attr_iomem);
/* Socket Common Memory Space */
- memory_region_init_io(&s->common_iomem, NULL, &pxa2xx_pcmcia_common_ops, s,
+ memory_region_init_io(&s->common_iomem, obj, &pxa2xx_pcmcia_common_ops, s,
"pxa2xx-pcmcia-common", 0x04000000);
memory_region_add_subregion(&s->container_mem, 0x0c000000,
&s->common_iomem);
--
2.4.3
- [Qemu-ppc] [PATCH 1/3] memory: allow destroying a non-empty MemoryRegion, (continued)
Re: [Qemu-ppc] [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_region_init from instance_init, Markus Armbruster, 2015/10/08
Re: [Qemu-ppc] [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_region_init from instance_init, Mark Cave-Ayland, 2015/10/08
[Qemu-ppc] [PATCH 3/3] macio: move DBDMA_init from instance_init to realize, Paolo Bonzini, 2015/10/05