qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]