[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_region_init
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_region_init from instance_init |
Date: |
Thu, 1 Oct 2015 12:13:05 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
On 01/10/2015 09:39, Markus Armbruster wrote:
> 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);
>
Yes, thanks!
Paolo
- Re: [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_region_init from instance_init, (continued)
Re: [Qemu-devel] [PATCH 2/3] hw: do not pass NULL to memory_region_init from instance_init, Markus Armbruster, 2015/10/08
[Qemu-devel] [PATCH 3/3] macio: move DBDMA_init from instance_init to realize, Paolo Bonzini, 2015/10/05