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

Re: [PATCH v2 13/15] error: Use error_setg_errno() for simplicity and consistency




> On Nov 21, 2025, at 7:14 AM, Markus Armbruster <armbru@xxxxxxxxxx> wrote:
> 
> Use error_setg_errno() instead of passing the value of strerror() or
> g_strerror() to error_setg().
> 
> The separator between the error message proper and the value of
> strerror() changes from " : ", "", " - ", "- " to ": " in places.
> 
> Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>

Thanks for the changes. The changes to vfio-user-obj.c look good to me.

Acked-by: Jagannathan Raman <jag.raman@xxxxxxxxxx>

> ---
> backends/spdm-socket.c      |  4 ++--
> backends/tpm/tpm_emulator.c | 13 +++++--------
> hw/9pfs/9p.c                |  3 +--
> hw/acpi/core.c              |  3 +--
> hw/intc/openpic_kvm.c       |  3 +--
> hw/intc/xics_kvm.c          |  5 +++--
> hw/remote/vfio-user-obj.c   | 18 +++++++++---------
> hw/sensor/emc141x.c         |  4 ++--
> hw/sensor/tmp421.c          |  4 ++--
> hw/smbios/smbios.c          |  4 ++--
> hw/virtio/vdpa-dev.c        |  4 ++--
> migration/postcopy-ram.c    | 10 +++++-----
> net/slirp.c                 |  5 +++--
> qga/commands-posix-ssh.c    | 23 +++++++++++++----------
> system/vl.c                 |  2 +-
> target/ppc/kvm.c            |  5 ++---
> 16 files changed, 54 insertions(+), 56 deletions(-)
> 
> diff --git a/backends/spdm-socket.c b/backends/spdm-socket.c
> index 6d8f02d3b9..a12bc47f77 100644
> --- a/backends/spdm-socket.c
> +++ b/backends/spdm-socket.c
> @@ -167,7 +167,7 @@ int spdm_socket_connect(uint16_t port, Error **errp)
> 
>     client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
>     if (client_socket < 0) {
> -        error_setg(errp, "cannot create socket: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "cannot create socket");
>         return -1;
>     }
> 
> @@ -179,7 +179,7 @@ int spdm_socket_connect(uint16_t port, Error **errp)
> 
>     if (connect(client_socket, (struct sockaddr *)&server_addr,
>                 sizeof(server_addr)) < 0) {
> -        error_setg(errp, "cannot connect: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "cannot connect");
>         close(client_socket);
>         return -1;
>     }
> diff --git a/backends/tpm/tpm_emulator.c b/backends/tpm/tpm_emulator.c
> index f10b9074fb..f52cb4d435 100644
> --- a/backends/tpm/tpm_emulator.c
> +++ b/backends/tpm/tpm_emulator.c
> @@ -225,8 +225,7 @@ static int tpm_emulator_set_locality(TPMEmulator 
> *tpm_emu, uint8_t locty_number,
>     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_LOCALITY, &loc,
>                              sizeof(loc), sizeof(loc.u.resp.tpm_result),
>                              sizeof(loc)) < 0) {
> -        error_setg(errp, "tpm-emulator: could not set locality : %s",
> -                   strerror(errno));
> +        error_setg_errno(errp, errno, "tpm-emulator: could not set 
> locality");
>         return -1;
>     }
> 
> @@ -315,8 +314,7 @@ static int tpm_emulator_stop_tpm(TPMBackend *tb, Error 
> **errp)
> 
>     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_STOP, &res, 0,
>                              sizeof(ptm_res), sizeof(res)) < 0) {
> -        error_setg(errp, "tpm-emulator: Could not stop TPM: %s",
> -                   strerror(errno));
> +        error_setg_errno(errp, errno, "tpm-emulator: Could not stop TPM");
>         return -1;
>     }
> 
> @@ -377,8 +375,8 @@ static int tpm_emulator_set_buffer_size(TPMBackend *tb,
>     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_SET_BUFFERSIZE, &psbs,
>                              sizeof(psbs.u.req), 
> sizeof(psbs.u.resp.tpm_result),
>                              sizeof(psbs.u.resp)) < 0) {
> -        error_setg(errp, "tpm-emulator: Could not set buffer size: %s",
> -                   strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "tpm-emulator: Could not set buffer size");
>         return -1;
>     }
> 
> @@ -426,8 +424,7 @@ static int tpm_emulator_startup_tpm_resume(TPMBackend 
> *tb, size_t buffersize,
>     if (tpm_emulator_ctrlcmd(tpm_emu, CMD_INIT, &init, sizeof(init),
>                              sizeof(init.u.resp.tpm_result),
>                              sizeof(init)) < 0) {
> -        error_setg(errp, "tpm-emulator: could not send INIT: %s",
> -                   strerror(errno));
> +        error_setg_errno(errp, errno, "tpm-emulator: could not send INIT");
>         goto err_exit;
>     }
> 
> diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
> index bc4a016ee3..6fbe604ce8 100644
> --- a/hw/9pfs/9p.c
> +++ b/hw/9pfs/9p.c
> @@ -4345,8 +4345,7 @@ int v9fs_device_realize_common(V9fsState *s, const 
> V9fsTransport *t,
>      * use co-routines here.
>      */
>     if (s->ops->name_to_path(&s->ctx, NULL, "/", &path) < 0) {
> -        error_setg(errp,
> -                   "error in converting name to path %s", strerror(errno));
> +        error_setg_errno(errp, errno, "error in converting name to path");
>         goto out;
>     }
>     if (s->ops->lstat(&s->ctx, &path, &stat)) {
> diff --git a/hw/acpi/core.c b/hw/acpi/core.c
> index d2677332af..82974eb257 100644
> --- a/hw/acpi/core.c
> +++ b/hw/acpi/core.c
> @@ -293,8 +293,7 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
>                 memcpy(blob + bloblen, data, r);
>                 bloblen += r;
>             } else if (errno != EINTR) {
> -                error_setg(errp, "can't read file %s: %s", *cur,
> -                           strerror(errno));
> +                error_setg_errno(errp, errno, "can't read file %s", *cur);
>                 close(fd);
>                 goto out;
>             }
> diff --git a/hw/intc/openpic_kvm.c b/hw/intc/openpic_kvm.c
> index 673ea9ca05..0c11bbc963 100644
> --- a/hw/intc/openpic_kvm.c
> +++ b/hw/intc/openpic_kvm.c
> @@ -223,8 +223,7 @@ static void kvm_openpic_realize(DeviceState *dev, Error 
> **errp)
>     cd.type = kvm_openpic_model;
>     ret = kvm_vm_ioctl(s, KVM_CREATE_DEVICE, &cd);
>     if (ret < 0) {
> -        error_setg(errp, "Can't create device %d: %s",
> -                   cd.type, strerror(errno));
> +        error_setg_errno(errp, errno, "Can't create device %d", cd.type);
>         return;
>     }
>     opp->fd = cd.fd;
> diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
> index ee72969f5f..61f66d1019 100644
> --- a/hw/intc/xics_kvm.c
> +++ b/hw/intc/xics_kvm.c
> @@ -165,8 +165,9 @@ void icp_kvm_realize(DeviceState *dev, Error **errp)
>     if (ret < 0) {
>         Error *local_err = NULL;
> 
> -        error_setg(&local_err, "Unable to connect CPU%ld to kernel XICS: %s",
> -                   vcpu_id, strerror(errno));
> +        error_setg_errno(&local_err, errno,
> +                         "Unable to connect CPU%ld to kernel XICS",
> +                         vcpu_id);
>         if (errno == ENOSPC) {
>             error_append_hint(&local_err, "Try -smp maxcpus=N with N < %u\n",
>                               MACHINE(qdev_get_machine())->smp.max_cpus);
> diff --git a/hw/remote/vfio-user-obj.c b/hw/remote/vfio-user-obj.c
> index 216b4876e2..24c0088f63 100644
> --- a/hw/remote/vfio-user-obj.c
> +++ b/hw/remote/vfio-user-obj.c
> @@ -751,7 +751,7 @@ static void vfu_object_init_ctx(VfuObject *o, Error 
> **errp)
>                                 LIBVFIO_USER_FLAG_ATTACH_NB,
>                                 o, VFU_DEV_TYPE_PCI);
>     if (o->vfu_ctx == NULL) {
> -        error_setg(errp, "vfu: Failed to create context - %s", 
> strerror(errno));
> +        error_setg_errno(errp, errno, "vfu: Failed to create context");
>         return;
>     }
> 
> @@ -776,9 +776,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error 
> **errp)
> 
>     ret = vfu_pci_init(o->vfu_ctx, pci_type, PCI_HEADER_TYPE_NORMAL, 0);
>     if (ret < 0) {
> -        error_setg(errp,
> -                   "vfu: Failed to attach PCI device %s to context - %s",
> -                   o->device, strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "vfu: Failed to attach PCI device %s to context",
> +                         o->device);
>         goto fail;
>     }
> 
> @@ -792,9 +792,9 @@ static void vfu_object_init_ctx(VfuObject *o, Error 
> **errp)
>                            VFU_REGION_FLAG_RW | VFU_REGION_FLAG_ALWAYS_CB,
>                            NULL, 0, -1, 0);
>     if (ret < 0) {
> -        error_setg(errp,
> -                   "vfu: Failed to setup config space handlers for %s- %s",
> -                   o->device, strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "vfu: Failed to setup config space handlers for %s",
> +                         o->device);
>         goto fail;
>     }
> 
> @@ -822,8 +822,8 @@ static void vfu_object_init_ctx(VfuObject *o, Error 
> **errp)
> 
>     ret = vfu_realize_ctx(o->vfu_ctx);
>     if (ret < 0) {
> -        error_setg(errp, "vfu: Failed to realize device %s- %s",
> -                   o->device, strerror(errno));
> +        error_setg_errno(errp, errno, "vfu: Failed to realize device %s",
> +                         o->device);
>         goto fail;
>     }
> 
> diff --git a/hw/sensor/emc141x.c b/hw/sensor/emc141x.c
> index 7b2ce383a1..a51fc44395 100644
> --- a/hw/sensor/emc141x.c
> +++ b/hw/sensor/emc141x.c
> @@ -59,7 +59,7 @@ static void emc141x_get_temperature(Object *obj, Visitor 
> *v, const char *name,
>     unsigned tempid;
> 
>     if (sscanf(name, "temperature%u", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>         return;
>     }
> 
> @@ -86,7 +86,7 @@ static void emc141x_set_temperature(Object *obj, Visitor 
> *v, const char *name,
>     }
> 
>     if (sscanf(name, "temperature%u", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>         return;
>     }
> 
> diff --git a/hw/sensor/tmp421.c b/hw/sensor/tmp421.c
> index 3421c44086..127edd0ba5 100644
> --- a/hw/sensor/tmp421.c
> +++ b/hw/sensor/tmp421.c
> @@ -117,7 +117,7 @@ static void tmp421_get_temperature(Object *obj, Visitor 
> *v, const char *name,
>     int tempid;
> 
>     if (sscanf(name, "temperature%d", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>         return;
>     }
> 
> @@ -154,7 +154,7 @@ static void tmp421_set_temperature(Object *obj, Visitor 
> *v, const char *name,
>     }
> 
>     if (sscanf(name, "temperature%d", &tempid) != 1) {
> -        error_setg(errp, "error reading %s: %s", name, g_strerror(errno));
> +        error_setg_errno(errp, errno, "error reading %s", name);
>         return;
>     }
> 
> diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
> index 7558b2ad83..b228f9eb85 100644
> --- a/hw/smbios/smbios.c
> +++ b/hw/smbios/smbios.c
> @@ -1281,8 +1281,8 @@ static int save_opt_one(void *opaque,
>                 break;
>             }
>             if (ret < 0) {
> -                error_setg(errp, "Unable to read from %s: %s",
> -                           value, strerror(errno));
> +                error_setg_errno(errp, errno, "Unable to read from %s",
> +                                 value);
>                 qemu_close(fd);
>                 return -1;
>             }
> diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c
> index 4a7b970976..f97d576171 100644
> --- a/hw/virtio/vdpa-dev.c
> +++ b/hw/virtio/vdpa-dev.c
> @@ -41,8 +41,8 @@ vhost_vdpa_device_get_u32(int fd, unsigned long int cmd, 
> Error **errp)
>     uint32_t val = (uint32_t)-1;
> 
>     if (ioctl(fd, cmd, &val) < 0) {
> -        error_setg(errp, "vhost-vdpa-device: cmd 0x%lx failed: %s",
> -                   cmd, strerror(errno));
> +        error_setg_errno(errp, errno, "vhost-vdpa-device: cmd 0x%lx failed",
> +                         cmd);
>     }
> 
>     return val;
> diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
> index 3f98dcb6fd..5454372ac6 100644
> --- a/migration/postcopy-ram.c
> +++ b/migration/postcopy-ram.c
> @@ -582,7 +582,7 @@ bool 
> postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
> 
>     ufd = uffd_open(O_CLOEXEC);
>     if (ufd == -1) {
> -        error_setg(errp, "Userfaultfd not available: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "Userfaultfd not available");
>         goto out;
>     }
> 
> @@ -620,7 +620,7 @@ bool 
> postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
>      * it was enabled.
>      */
>     if (munlockall()) {
> -        error_setg(errp, "munlockall() failed: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "munlockall() failed");
>         goto out;
>     }
> 
> @@ -632,7 +632,7 @@ bool 
> postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
>     testarea = mmap(NULL, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE |
>                                     MAP_ANONYMOUS, -1, 0);
>     if (testarea == MAP_FAILED) {
> -        error_setg(errp, "Failed to map test area: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "Failed to map test area");
>         goto out;
>     }
>     g_assert(QEMU_PTR_IS_ALIGNED(testarea, pagesize));
> @@ -642,14 +642,14 @@ bool 
> postcopy_ram_supported_by_host(MigrationIncomingState *mis, Error **errp)
>     reg_struct.mode = UFFDIO_REGISTER_MODE_MISSING;
> 
>     if (ioctl(ufd, UFFDIO_REGISTER, &reg_struct)) {
> -        error_setg(errp, "UFFDIO_REGISTER failed: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "UFFDIO_REGISTER failed");
>         goto out;
>     }
> 
>     range_struct.start = (uintptr_t)testarea;
>     range_struct.len = pagesize;
>     if (ioctl(ufd, UFFDIO_UNREGISTER, &range_struct)) {
> -        error_setg(errp, "UFFDIO_UNREGISTER failed: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "UFFDIO_UNREGISTER failed");
>         goto out;
>     }
> 
> diff --git a/net/slirp.c b/net/slirp.c
> index 5996fec512..04925f3318 100644
> --- a/net/slirp.c
> +++ b/net/slirp.c
> @@ -1020,8 +1020,9 @@ static int slirp_smb(SlirpState* s, const char 
> *exported_dir,
>     }
> 
>     if (access(exported_dir, R_OK | X_OK)) {
> -        error_setg(errp, "Error accessing shared directory '%s': %s",
> -                   exported_dir, strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "Error accessing shared directory '%s'",
> +                         exported_dir);
>         return -1;
>     }
> 
> diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c
> index 246171d323..661972e34e 100644
> --- a/qga/commands-posix-ssh.c
> +++ b/qga/commands-posix-ssh.c
> @@ -61,20 +61,22 @@ mkdir_for_user(const char *path, const struct passwd *p,
>                mode_t mode, Error **errp)
> {
>     if (g_mkdir(path, mode) == -1) {
> -        error_setg(errp, "failed to create directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno, "failed to create directory '%s'",
> +                         path);
>         return false;
>     }
> 
>     if (chown(path, p->pw_uid, p->pw_gid) == -1) {
> -        error_setg(errp, "failed to set ownership of directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "failed to set ownership of directory '%s'",
> +                         path);
>         return false;
>     }
> 
>     if (chmod(path, mode) == -1) {
> -        error_setg(errp, "failed to set permissions of directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "failed to set permissions of directory '%s'",
> +                         path);
>         return false;
>     }
> 
> @@ -95,14 +97,15 @@ write_authkeys(const char *path, const GStrv keys,
>     }
> 
>     if (chown(path, p->pw_uid, p->pw_gid) == -1) {
> -        error_setg(errp, "failed to set ownership of directory '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno,
> +                         "failed to set ownership of directory '%s'",
> +                         path);
>         return false;
>     }
> 
>     if (chmod(path, 0600) == -1) {
> -        error_setg(errp, "failed to set permissions of '%s': %s",
> -                   path, g_strerror(errno));
> +        error_setg_errno(errp, errno, "failed to set permissions of '%s'",
> +                         path);
>         return false;
>     }
> 
> diff --git a/system/vl.c b/system/vl.c
> index 5091fe52d9..2ef5b4b3b2 100644
> --- a/system/vl.c
> +++ b/system/vl.c
> @@ -619,7 +619,7 @@ static int parse_add_fd(void *opaque, QemuOpts *opts, 
> Error **errp)
>     }
> #endif
>     if (dupfd == -1) {
> -        error_setg(errp, "error duplicating fd: %s", strerror(errno));
> +        error_setg_errno(errp, errno, "error duplicating fd");
>         return -1;
>     }
> 
> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c
> index 43124bf1c7..3501b5d546 100644
> --- a/target/ppc/kvm.c
> +++ b/target/ppc/kvm.c
> @@ -2699,9 +2699,8 @@ int kvmppc_get_htab_fd(bool write, uint64_t index, 
> Error **errp)
> 
>     ret = kvm_vm_ioctl(kvm_state, KVM_PPC_GET_HTAB_FD, &s);
>     if (ret < 0) {
> -        error_setg(errp, "Unable to open fd for %s HPT %s KVM: %s",
> -                   write ? "writing" : "reading", write ? "to" : "from",
> -                   strerror(errno));
> +        error_setg_errno(errp, errno, "Unable to open fd for %s HPT %s KVM",
> +                   write ? "writing" : "reading", write ? "to" : "from");
>         return -errno;
>     }
> 
> -- 
> 2.49.0
> 


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.