From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, david@kernel.org, imammedo@redhat.com,
peter.maydell@linaro.org
Subject: Re: [PATCH 1/7] backends/hostmem: Drop redundant validation of property "size"
Date: Wed, 11 Nov 2026 12:45:04 +0000 [thread overview]
Message-ID: <avRjUJ9-d0_RxIvk@redhat.com> (raw)
In-Reply-To: <20261111122342.634370-2-armbru@redhat.com>
On Wed, Nov 11, 2026 at 01:23:36PM +0100, Markus Armbruster wrote:
> Property "size" is mandatory, and its setter
> host_memory_backend_set_size() rejects value zero. Delete the
> redundant checks for zero in the .alloc() callbacks.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> backends/hostmem-epc.c | 5 -----
> backends/hostmem-file.c | 4 ----
> backends/hostmem-memfd.c | 5 -----
> backends/hostmem-ram.c | 5 -----
> backends/hostmem-shm.c | 5 -----
> 5 files changed, 24 deletions(-)
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
...it is a shame this was/is dead code, since the actual error message
from host_memory_backend_set_size() is (IMHO) worse than that from the
unreachable code you're deleting
$ ./build/qemu-system-x86_64 -object memory-backend-ram,size=0,id=foo
qemu-system-x86_64: property 'size' of memory-backend-ram doesn't take value '0'
as a separate patch I might suggest
diff --git a/backends/hostmem.c b/backends/hostmem.c
index 173d042be35..f523dce6eb0 100644
--- a/backends/hostmem.c
+++ b/backends/hostmem.c
@@ -77,8 +77,8 @@ host_memory_backend_set_size(Object *obj, Visitor *v, const char *name,
}
if (!value) {
error_setg(errp,
- "property '%s' of %s doesn't take value '%" PRIu64 "'",
- name, object_get_typename(obj), value);
+ "cannot create '%s' with a size of 0",
+ object_get_typename(obj));
return;
}
backend->size = value;
so that we get the nicer message:
$ ./build/qemu-system-x86_64 -object memory-backend-ram,size=0,id=foo
qemu-system-x86_64: cannot create 'memory-backend-ram' with a size of 0
>
> diff --git a/backends/hostmem-epc.c b/backends/hostmem-epc.c
> index ab20b182331..e1c784249ff 100644
> --- a/backends/hostmem-epc.c
> +++ b/backends/hostmem-epc.c
> @@ -24,11 +24,6 @@ sgx_epc_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
> uint32_t ram_flags;
> int fd;
>
> - if (!backend->size) {
> - error_setg(errp, "can't create backend with size 0");
> - return false;
> - }
> -
> fd = qemu_open("/dev/sgx_vepc", O_RDWR, errp);
> if (fd < 0) {
> return false;
> diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c
> index 6ad9cad0320..08d0382d76f 100644
> --- a/backends/hostmem-file.c
> +++ b/backends/hostmem-file.c
> @@ -48,10 +48,6 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
> g_autofree gchar *name = NULL;
> uint32_t ram_flags;
>
> - if (!backend->size) {
> - error_setg(errp, "can't create backend with size 0");
> - return false;
> - }
> if (!fb->mem_path) {
> error_setg(errp, "mem-path property not set");
> return false;
> diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c
> index 46489212a23..11d456e3ebd 100644
> --- a/backends/hostmem-memfd.c
> +++ b/backends/hostmem-memfd.c
> @@ -49,11 +49,6 @@ memfd_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
> int fd = cpr_find_fd(name, 0);
> uint32_t ram_flags;
>
> - if (!backend->size) {
> - error_setg(errp, "can't create backend with size 0");
> - return false;
> - }
> -
> if (fd >= 0) {
> goto have_fd;
> }
> diff --git a/backends/hostmem-ram.c b/backends/hostmem-ram.c
> index 6a507fad77c..0ae7b4ae759 100644
> --- a/backends/hostmem-ram.c
> +++ b/backends/hostmem-ram.c
> @@ -22,11 +22,6 @@ ram_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
> g_autofree char *name = NULL;
> uint32_t ram_flags;
>
> - if (!backend->size) {
> - error_setg(errp, "can't create backend with size 0");
> - return false;
> - }
> -
> name = host_memory_backend_get_name(backend);
> ram_flags = backend->share ? RAM_SHARED : RAM_PRIVATE;
> ram_flags |= backend->reserve ? 0 : RAM_NORESERVE;
> diff --git a/backends/hostmem-shm.c b/backends/hostmem-shm.c
> index adf60957c3c..0a01c760551 100644
> --- a/backends/hostmem-shm.c
> +++ b/backends/hostmem-shm.c
> @@ -30,11 +30,6 @@ shm_backend_memory_alloc(HostMemoryBackend *backend, Error **errp)
> uint32_t ram_flags;
> int fd = cpr_find_fd(backend_name, 0);
>
> - if (!backend->size) {
> - error_setg(errp, "can't create shm backend with size 0");
> - return false;
> - }
> -
> if (!backend->share) {
> error_setg(errp, "can't create shm backend with `share=off`");
> return false;
> --
> 2.55.0
>
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
next prev parent reply other threads:[~2026-11-11 12:45 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 12:23 [PATCH 0/7] backends/hostmem: Make QOM types and properties unconditional Markus Armbruster
2026-11-11 12:23 ` [PATCH 1/7] backends/hostmem: Drop redundant validation of property "size" Markus Armbruster
2026-11-11 12:45 ` Daniel P. Berrangé [this message]
2026-11-12 7:44 ` Markus Armbruster
2026-11-12 8:12 ` Daniel P. Berrangé
2026-11-12 11:49 ` Markus Armbruster
2026-11-11 16:42 ` Mark Cave-Ayland
2026-11-11 12:23 ` [PATCH 2/7] backends/hostmem-file: Drop useless validation of property "mem-path" Markus Armbruster
2026-11-11 12:50 ` Daniel P. Berrangé
2026-11-11 16:48 ` Mark Cave-Ayland
2026-11-11 12:23 ` [PATCH 3/7] backends/hostmem: Improve error reporting when method alloc() fails Markus Armbruster
2026-11-11 12:51 ` Daniel P. Berrangé
2026-11-11 16:49 ` Mark Cave-Ayland
2026-11-11 12:23 ` [PATCH 4/7] backends/hostmem-epc: Register QOM type unconditionally Markus Armbruster
2026-11-11 12:53 ` Daniel P. Berrangé
2026-11-11 16:50 ` Mark Cave-Ayland
2026-11-11 12:23 ` [PATCH 5/7] backends/hostmem-memfd: " Markus Armbruster
2026-11-11 12:54 ` Daniel P. Berrangé
2026-11-11 16:51 ` Mark Cave-Ayland
2026-11-11 12:23 ` [PATCH 6/7] util/memfd: Improve error message when memfd_create() fails Markus Armbruster
2026-11-11 12:56 ` Daniel P. Berrangé
2026-11-11 16:53 ` Mark Cave-Ayland
2026-11-11 12:23 ` [PATCH 7/7] backends/hostmem-memfd: Add huge TLB properties unconditionally Markus Armbruster
2026-11-11 12:56 ` Daniel P. Berrangé
2026-11-11 16:54 ` Mark Cave-Ayland
2026-11-11 12:36 ` Use of qemu_memfd_check() in system/physmem.c (was: [PATCH 0/7] backends/hostmem: Make QOM types and properties unconditional) Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=avRjUJ9-d0_RxIvk@redhat.com \
--to=berrange@redhat.com \
--cc=armbru@redhat.com \
--cc=david@kernel.org \
--cc=imammedo@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.