When there are multiple memory backends in use, including the object type name, ID and the property name in the error message can help users to locate the error.
Signed-off-by: Haozhong Zhang <haozhong.zh...@intel.com> Suggested-by: "Dr. David Alan Gilbert" <dgilb...@redhat.com> --- backends/hostmem-file.c | 9 ++++++--- backends/hostmem.c | 11 +++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c index e319ec1ad8..ed7d145365 100644 --- a/backends/hostmem-file.c +++ b/backends/hostmem-file.c @@ -79,7 +79,8 @@ static void set_mem_path(Object *o, const char *str, Error **errp) HostMemoryBackendFile *fb = MEMORY_BACKEND_FILE(o); if (host_memory_backend_mr_inited(backend)) { - error_setg(errp, "cannot change property value"); + error_setg(errp, "cannot change property 'mem-path' of %s '%s'", + object_get_typename(o), backend->id); return; } g_free(fb->mem_path); @@ -99,7 +100,8 @@ static void file_memory_backend_set_share(Object *o, bool value, Error **errp) HostMemoryBackendFile *fb = MEMORY_BACKEND_FILE(o); if (host_memory_backend_mr_inited(backend)) { - error_setg(errp, "cannot change property value"); + error_setg(errp, "cannot change property 'share' of %s '%s'", + object_get_typename(o), backend->id); return; } fb->share = value; @@ -136,7 +138,8 @@ static void file_memory_backend_set_align(Object *o, Visitor *v, uint64_t val; if (host_memory_backend_mr_inited(backend)) { - error_setg(&local_err, "cannot change property value"); + error_setg(&local_err, "cannot change property '%s' of %s '%s'", + name, object_get_typename(o), backend->id); goto out; } diff --git a/backends/hostmem.c b/backends/hostmem.c index ee2c2d5bfd..6853d19bc5 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -46,7 +46,8 @@ host_memory_backend_set_size(Object *obj, Visitor *v, const char *name, uint64_t value; if (host_memory_backend_mr_inited(backend)) { - error_setg(&local_err, "cannot change property value"); + error_setg(&local_err, "cannot change property %s of %s '%s'", + name, object_get_typename(obj), backend->id); goto out; } @@ -55,8 +56,9 @@ host_memory_backend_set_size(Object *obj, Visitor *v, const char *name, goto out; } if (!value) { - error_setg(&local_err, "Property '%s.%s' doesn't take value '%" - PRIu64 "'", object_get_typename(obj), name, value); + error_setg(&local_err, + "property '%s' of %s '%s' doesn't take value '%" PRIu64 "'", + name, object_get_typename(obj), backend->id, value); goto out; } backend->size = value; @@ -363,7 +365,8 @@ static void set_id(Object *o, const char *str, Error **errp) HostMemoryBackend *backend = MEMORY_BACKEND(o); if (backend->id) { - error_setg(errp, "cannot change property value"); + error_setg(errp, "cannot change property 'id' of %s '%s'", + object_get_typename(o), backend->id); return; } backend->id = g_strdup(str); -- 2.14.1