[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 = {