qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 2/2] hostmem: Prevent removing an in-use memo


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH v4 2/2] hostmem: Prevent removing an in-use memory backend object
Date: Fri, 27 Mar 2015 15:39:05 +0100

On Fri, 27 Mar 2015 13:36:12 +0800
Lin Ma <address@hidden> wrote:

> showing a memory device whose memdev is removed leads an assert:
> 
> (qemu) object_add memory-backend-ram,id=ram0,size=128M
> (qemu) device_add pc-dimm,id=d0,memdev=ram0
> (qemu) object_del ram0
> (qemu) info memory-devices
> **
> ERROR:qom/object.c:1274:object_get_canonical_path_component:\
>                             assertion failed: (obj->parent != NULL)
> Aborted
> 
> The patch prevents removing an in-use mem backend and error out.
> 
> Signed-off-by: Lin Ma <address@hidden>
> ---
>  backends/hostmem.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/backends/hostmem.c b/backends/hostmem.c
> index 99e8f99..dbf94a9 100644
> --- a/backends/hostmem.c
> +++ b/backends/hostmem.c
> @@ -335,12 +335,26 @@ host_memory_backend_memory_complete(UserCreatable *uc, 
> Error **errp)
>      }
>  }
>  
> +static bool
> +host_memory_backend_can_be_deleted(UserCreatable *uc, Error **errp)
> +{
> +    MemoryRegion *mr;
add separating line here

> +    mr = host_memory_backend_get_memory(MEMORY_BACKEND(uc), errp);
> +    if (memory_region_is_mapped(mr)) {
> +        return false;
> +    } else {
> +        return true;
> +    }
> +}
> +
>  static void
>  host_memory_backend_class_init(ObjectClass *oc, void *data)
>  {
>      UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc);
>  
>      ucc->complete = host_memory_backend_memory_complete;
> +
unnecessary line, pls drop.

> +    ucc->can_be_deleted = host_memory_backend_can_be_deleted;
>  }
>  
>  static const TypeInfo host_memory_backend_info = {




reply via email to

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