From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, vsementsov@virtuozzo.com,
berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org,
pbonzini@redhat.com
Subject: [PATCH 23/46] qapi: Smooth error checking with Coccinelle
Date: Wed, 24 Jun 2020 18:43:21 +0200 [thread overview]
Message-ID: <20200624164344.3778251-24-armbru@redhat.com> (raw)
In-Reply-To: <20200624164344.3778251-1-armbru@redhat.com>
The previous commit enables conversion of
visit_foo(..., &err);
if (err) {
...
}
to
if (!visit_foo(..., errp)) {
...
}
for visitor functions that now return true / false on success / error.
Coccinelle script:
@@
identifier fun =~ "check_list|input_type_enum|lv_start_struct|lv_type_bool|lv_type_int64|lv_type_str|lv_type_uint64|output_type_enum|parse_type_bool|parse_type_int64|parse_type_null|parse_type_number|parse_type_size|parse_type_str|parse_type_uint64|print_type_bool|print_type_int64|print_type_null|print_type_number|print_type_size|print_type_str|print_type_uint64|qapi_clone_start_alternate|qapi_clone_start_list|qapi_clone_start_struct|qapi_clone_type_bool|qapi_clone_type_int64|qapi_clone_type_null|qapi_clone_type_number|qapi_clone_type_str|qapi_clone_type_uint64|qapi_dealloc_start_list|qapi_dealloc_start_struct|qapi_dealloc_type_anything|qapi_dealloc_type_bool|qapi_dealloc_type_int64|qapi_dealloc_type_null|qapi_dealloc_type_number|qapi_dealloc_type_str|qapi_dealloc_type_uint64|qobject_input_check_list|qobject_input_check_struct|qobject_input_start_alternate|qobject_input_start_list|qobject_input_start_struct|qobject_input_type_any|qobject_input_type_bool|qobject_input_type_bool_keyval|qobject_input_type_int64|qobject_input_type_int64_keyval|qobject_input_type_null|qobject_input_type_number|qobject_input_type_number_keyval|qobject_input_type_size_keyval|qobject_input_type_str|qobject_input_type_str_keyval|qobject_input_type_uint64|qobject_input_type_uint64_keyval|qobject_output_start_list|qobject_output_start_struct|qobject_output_type_any|qobject_output_type_bool|qobject_output_type_int64|qobject_output_type_null|qobject_output_type_number|qobject_output_type_str|qobject_output_type_uint64|start_list|visit_check_list|visit_check_struct|visit_start_alternate|visit_start_list|visit_start_struct|visit_type_.*";
expression list args, args2;
typedef Error;
Error *err;
identifier errp;
@@
- fun(args, &err, args2);
- if (err) {
+ if (!fun(args, errp, args2)) {
... when != err
- error_propagate(errp, err);
...
}
@@
identifier fun =~ "check_list|input_type_enum|lv_start_struct|lv_type_bool|lv_type_int64|lv_type_str|lv_type_uint64|output_type_enum|parse_type_bool|parse_type_int64|parse_type_null|parse_type_number|parse_type_size|parse_type_str|parse_type_uint64|print_type_bool|print_type_int64|print_type_null|print_type_number|print_type_size|print_type_str|print_type_uint64|qapi_clone_start_alternate|qapi_clone_start_list|qapi_clone_start_struct|qapi_clone_type_bool|qapi_clone_type_int64|qapi_clone_type_null|qapi_clone_type_number|qapi_clone_type_str|qapi_clone_type_uint64|qapi_dealloc_start_list|qapi_dealloc_start_struct|qapi_dealloc_type_anything|qapi_dealloc_type_bool|qapi_dealloc_type_int64|qapi_dealloc_type_null|qapi_dealloc_type_number|qapi_dealloc_type_str|qapi_dealloc_type_uint64|qobject_input_check_list|qobject_input_check_struct|qobject_input_start_alternate|qobject_input_start_list|qobject_input_start_struct|qobject_input_type_any|qobject_input_type_bool|qobject_input_type_bool_keyval|qobject_input_type_int64|qobject_input_type_int64_keyval|qobject_input_type_null|qobject_input_type_number|qobject_input_type_number_keyval|qobject_input_type_size_keyval|qobject_input_type_str|qobject_input_type_str_keyval|qobject_input_type_uint64|qobject_input_type_uint64_keyval|qobject_output_start_list|qobject_output_start_struct|qobject_output_type_any|qobject_output_type_bool|qobject_output_type_int64|qobject_output_type_null|qobject_output_type_number|qobject_output_type_str|qobject_output_type_uint64|start_list|visit_check_list|visit_check_struct|visit_start_alternate|visit_start_list|visit_start_struct|visit_type_.*";
expression list args, args2;
typedef Error;
Error *err;
@@
- fun(args, &err, args2);
- if (err) {
+ if (!fun(args, &err, args2)) {
...
}
Eliminate error_propagate() that are now unnecessary. Delete @err
that are now unused. Tidy up line breaks and whitespace.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
accel/kvm/kvm-all.c | 5 +--
accel/tcg/tcg-all.c | 5 +--
backends/cryptodev.c | 5 +--
backends/hostmem-file.c | 5 +--
backends/hostmem-memfd.c | 5 +--
backends/hostmem.c | 10 ++----
block/blkdebug.c | 5 +--
block/nbd.c | 5 +--
block/sheepdog.c | 5 +--
block/throttle-groups.c | 8 ++---
bootdevice.c | 3 +-
hw/block/xen-block.c | 5 +--
hw/core/machine.c | 5 +--
hw/core/qdev-properties-system.c | 20 +++--------
hw/core/qdev-properties.c | 58 +++++++-------------------------
hw/cpu/core.c | 10 ++----
hw/gpio/aspeed_gpio.c | 5 +--
hw/i386/pc.c | 5 +--
hw/ide/qdev.c | 3 +-
hw/intc/apic_common.c | 5 +--
hw/mem/nvdimm.c | 8 ++---
hw/misc/aspeed_sdmc.c | 5 +--
hw/misc/pca9552.c | 5 +--
hw/misc/tmp105.c | 5 +--
hw/misc/tmp421.c | 5 +--
hw/net/ne2000-isa.c | 3 +-
hw/ppc/spapr_caps.c | 15 ++-------
hw/ppc/spapr_drc.c | 13 +++----
hw/s390x/css.c | 5 +--
hw/tpm/tpm_util.c | 5 +--
hw/usb/dev-storage.c | 3 +-
hw/vfio/pci-quirks.c | 5 +--
hw/virtio/virtio-balloon.c | 17 +++-------
iothread.c | 5 +--
monitor/hmp-cmds.c | 3 +-
net/colo-compare.c | 10 ++----
net/dump.c | 5 +--
net/filter-buffer.c | 5 +--
qom/object.c | 56 ++++++++----------------------
qom/object_interfaces.c | 3 +-
target/arm/cpu64.c | 15 ++-------
target/arm/monitor.c | 4 +--
target/i386/cpu.c | 25 +++-----------
target/ppc/compat.c | 5 +--
target/s390x/cpu_models.c | 14 ++------
target/sparc/cpu.c | 5 +--
46 files changed, 95 insertions(+), 331 deletions(-)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index f24d7da783..be02b8e07a 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -3106,12 +3106,9 @@ static void kvm_set_kvm_shadow_mem(Object *obj, Visitor *v,
Error **errp)
{
KVMState *s = KVM_STATE(obj);
- Error *error = NULL;
int64_t value;
- visit_type_int(v, name, &value, &error);
- if (error) {
- error_propagate(errp, error);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index 3b4fda5640..eace2c113b 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -182,12 +182,9 @@ static void tcg_set_tb_size(Object *obj, Visitor *v,
Error **errp)
{
TCGState *s = TCG_STATE(obj);
- Error *error = NULL;
uint32_t value;
- visit_type_uint32(v, name, &value, &error);
- if (error) {
- error_propagate(errp, error);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
diff --git a/backends/cryptodev.c b/backends/cryptodev.c
index 8645f297e3..17ee76a61e 100644
--- a/backends/cryptodev.c
+++ b/backends/cryptodev.c
@@ -154,12 +154,9 @@ cryptodev_backend_set_queues(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
CryptoDevBackend *backend = CRYPTODEV_BACKEND(obj);
- Error *local_err = NULL;
uint32_t value;
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
if (!value) {
diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c
index 098c8e6e64..5b819020b4 100644
--- a/backends/hostmem-file.c
+++ b/backends/hostmem-file.c
@@ -110,7 +110,6 @@ static void file_memory_backend_set_align(Object *o, Visitor *v,
{
HostMemoryBackend *backend = MEMORY_BACKEND(o);
HostMemoryBackendFile *fb = MEMORY_BACKEND_FILE(o);
- Error *local_err = NULL;
uint64_t val;
if (host_memory_backend_mr_inited(backend)) {
@@ -119,9 +118,7 @@ static void file_memory_backend_set_align(Object *o, Visitor *v,
return;
}
- visit_type_size(v, name, &val, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &val, errp)) {
return;
}
fb->align = val;
diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c
index 9582c7f8fc..4c040a7541 100644
--- a/backends/hostmem-memfd.c
+++ b/backends/hostmem-memfd.c
@@ -77,7 +77,6 @@ memfd_backend_set_hugetlbsize(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
HostMemoryBackendMemfd *m = MEMORY_BACKEND_MEMFD(obj);
- Error *local_err = NULL;
uint64_t value;
if (host_memory_backend_mr_inited(MEMORY_BACKEND(obj))) {
@@ -85,9 +84,7 @@ memfd_backend_set_hugetlbsize(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_size(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
if (!value) {
diff --git a/backends/hostmem.c b/backends/hostmem.c
index 2a0c92d458..c614f1bdc1 100644
--- a/backends/hostmem.c
+++ b/backends/hostmem.c
@@ -54,7 +54,6 @@ host_memory_backend_set_size(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
HostMemoryBackend *backend = MEMORY_BACKEND(obj);
- Error *local_err = NULL;
uint64_t value;
if (host_memory_backend_mr_inited(backend)) {
@@ -63,9 +62,7 @@ host_memory_backend_set_size(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_size(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
if (!value) {
@@ -253,12 +250,9 @@ static void host_memory_backend_set_prealloc_threads(Object *obj, Visitor *v,
const char *name, void *opaque, Error **errp)
{
HostMemoryBackend *backend = MEMORY_BACKEND(obj);
- Error *local_err = NULL;
uint32_t value;
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
if (value <= 0) {
diff --git a/block/blkdebug.c b/block/blkdebug.c
index fa4b4fefdc..9c08d8a005 100644
--- a/block/blkdebug.c
+++ b/block/blkdebug.c
@@ -359,7 +359,6 @@ static int blkdebug_parse_perm_list(uint64_t *dest, QDict *options,
QObject *crumpled_subqdict = NULL;
Visitor *v = NULL;
BlockPermissionList *perm_list = NULL, *element;
- Error *local_err = NULL;
*dest = 0;
@@ -375,9 +374,7 @@ static int blkdebug_parse_perm_list(uint64_t *dest, QDict *options,
}
v = qobject_input_visitor_new(crumpled_subqdict);
- visit_type_BlockPermissionList(v, NULL, &perm_list, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_BlockPermissionList(v, NULL, &perm_list, errp)) {
ret = -EINVAL;
goto out;
}
diff --git a/block/nbd.c b/block/nbd.c
index 9789c56476..6876da04a7 100644
--- a/block/nbd.c
+++ b/block/nbd.c
@@ -1726,7 +1726,6 @@ static SocketAddress *nbd_config(BDRVNBDState *s, QDict *options,
SocketAddress *saddr = NULL;
QDict *addr = NULL;
Visitor *iv = NULL;
- Error *local_err = NULL;
qdict_extract_subqdict(options, &addr, "server.");
if (!qdict_size(addr)) {
@@ -1739,9 +1738,7 @@ static SocketAddress *nbd_config(BDRVNBDState *s, QDict *options,
goto done;
}
- visit_type_SocketAddress(iv, NULL, &saddr, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_SocketAddress(iv, NULL, &saddr, errp)) {
goto done;
}
diff --git a/block/sheepdog.c b/block/sheepdog.c
index 9cb5ae5fc6..a6a91442c9 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -532,7 +532,6 @@ static SocketAddress *sd_server_config(QDict *options, Error **errp)
QDict *server = NULL;
Visitor *iv = NULL;
SocketAddress *saddr = NULL;
- Error *local_err = NULL;
qdict_extract_subqdict(options, &server, "server.");
@@ -541,9 +540,7 @@ static SocketAddress *sd_server_config(QDict *options, Error **errp)
goto done;
}
- visit_type_SocketAddress(iv, NULL, &saddr, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_SocketAddress(iv, NULL, &saddr, errp)) {
goto done;
}
diff --git a/block/throttle-groups.c b/block/throttle-groups.c
index 60a2aad75a..dba2bb6451 100644
--- a/block/throttle-groups.c
+++ b/block/throttle-groups.c
@@ -811,7 +811,6 @@ static void throttle_group_set(Object *obj, Visitor *v, const char * name,
ThrottleGroup *tg = THROTTLE_GROUP(obj);
ThrottleConfig *cfg;
ThrottleParamInfo *info = opaque;
- Error *local_err = NULL;
int64_t value;
/* If we have finished initialization, don't accept individual property
@@ -823,9 +822,7 @@ static void throttle_group_set(Object *obj, Visitor *v, const char * name,
return;
}
- visit_type_int64(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int64(v, name, &value, errp)) {
return;
}
if (value < 0) {
@@ -892,8 +889,7 @@ static void throttle_group_set_limits(Object *obj, Visitor *v,
ThrottleLimits *argp;
Error *local_err = NULL;
- visit_type_ThrottleLimits(v, name, &argp, &local_err);
- if (local_err) {
+ if (!visit_type_ThrottleLimits(v, name, &argp, &local_err)) {
goto ret;
}
qemu_mutex_lock(&tg->lock);
diff --git a/bootdevice.c b/bootdevice.c
index 0ff55e2b79..fb09d3c668 100644
--- a/bootdevice.c
+++ b/bootdevice.c
@@ -297,8 +297,7 @@ static void device_set_bootindex(Object *obj, Visitor *v, const char *name,
int32_t boot_index;
Error *local_err = NULL;
- visit_type_int32(v, name, &boot_index, &local_err);
- if (local_err) {
+ if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
}
/* check whether bootindex is present in fw_boot_order list */
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index 10c44dfda2..6ca6f18c7b 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -403,7 +403,6 @@ static void xen_block_set_vdev(Object *obj, Visitor *v, const char *name,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
XenBlockVdev *vdev = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str, *p;
const char *end;
@@ -412,9 +411,7 @@ static void xen_block_set_vdev(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 1d80ab0e1d..109eb3bb24 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -290,12 +290,9 @@ static void machine_set_phandle_start(Object *obj, Visitor *v,
Error **errp)
{
MachineState *ms = MACHINE(obj);
- Error *error = NULL;
int64_t value;
- visit_type_int(v, name, &value, &error);
- if (error) {
- error_propagate(errp, error);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index 38b0c9f09b..f69e2858d1 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -80,7 +80,6 @@ static void set_drive_helper(Object *obj, Visitor *v, const char *name,
{
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
- Error *local_err = NULL;
void **ptr = qdev_get_prop_ptr(dev, prop);
char *str;
BlockBackend *blk;
@@ -92,9 +91,7 @@ static void set_drive_helper(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -227,7 +224,6 @@ static void set_chr(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp)
{
DeviceState *dev = DEVICE(obj);
- Error *local_err = NULL;
Property *prop = opaque;
CharBackend *be = qdev_get_prop_ptr(dev, prop);
Chardev *s;
@@ -238,9 +234,7 @@ static void set_chr(Object *obj, Visitor *v, const char *name, void *opaque,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -307,7 +301,6 @@ static void set_netdev(Object *obj, Visitor *v, const char *name,
NICPeers *peers_ptr = qdev_get_prop_ptr(dev, prop);
NetClientState **ncs = peers_ptr->ncs;
NetClientState *peers[MAX_QUEUE_NUM];
- Error *local_err = NULL;
int queues, err = 0, i = 0;
char *str;
@@ -316,9 +309,7 @@ static void set_netdev(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -389,7 +380,6 @@ static void set_audiodev(Object *obj, Visitor *v, const char* name,
Property *prop = opaque;
QEMUSoundCard *card = qdev_get_prop_ptr(dev, prop);
AudioState *state;
- Error *local_err = NULL;
int err = 0;
char *str;
@@ -398,9 +388,7 @@ static void set_audiodev(Object *obj, Visitor *v, const char* name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index 71f8aca7c6..fa88a8885c 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -116,7 +116,6 @@ static void prop_set_bit(Object *obj, Visitor *v, const char *name,
{
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
- Error *local_err = NULL;
bool value;
if (dev->realized) {
@@ -124,9 +123,7 @@ static void prop_set_bit(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_bool(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
bit_prop_set(dev, prop, value);
@@ -180,7 +177,6 @@ static void prop_set_bit64(Object *obj, Visitor *v, const char *name,
{
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
- Error *local_err = NULL;
bool value;
if (dev->realized) {
@@ -188,9 +184,7 @@ static void prop_set_bit64(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_bool(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
bit64_prop_set(dev, prop, value);
@@ -477,7 +471,6 @@ static void set_string(Object *obj, Visitor *v, const char *name,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
char **ptr = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str;
if (dev->realized) {
@@ -485,9 +478,7 @@ static void set_string(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
g_free(*ptr);
@@ -530,7 +521,6 @@ static void set_mac(Object *obj, Visitor *v, const char *name, void *opaque,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
MACAddr *mac = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
int i, pos;
char *str, *p;
@@ -539,9 +529,7 @@ static void set_mac(Object *obj, Visitor *v, const char *name, void *opaque,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -673,8 +661,7 @@ static void set_pci_devfn(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
+ if (!visit_type_str(v, name, &str, &local_err)) {
error_free(local_err);
local_err = NULL;
visit_type_int32(v, name, &value, &local_err);
@@ -748,16 +735,13 @@ static void set_size32(Object *obj, Visitor *v, const char *name, void *opaque,
Property *prop = opaque;
uint32_t *ptr = qdev_get_prop_ptr(dev, prop);
uint64_t value;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_size(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
@@ -798,16 +782,13 @@ static void set_blocksize(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
uint32_t *ptr = qdev_get_prop_ptr(dev, prop);
uint64_t value;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_size(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
/* value of 0 means "unset" */
@@ -875,7 +856,6 @@ static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
PCIHostDeviceAddress *addr = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str, *p;
char *e;
unsigned long val;
@@ -887,9 +867,7 @@ static void set_pci_host_devaddr(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -979,7 +957,6 @@ static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
QemuUUID *uuid = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str;
if (dev->realized) {
@@ -987,9 +964,7 @@ static void set_uuid(Object *obj, Visitor *v, const char *name, void *opaque,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
@@ -1055,7 +1030,6 @@ static void set_prop_arraylen(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
uint32_t *alenptr = qdev_get_prop_ptr(dev, prop);
void **arrayptr = (void *)dev + prop->arrayoffset;
- Error *local_err = NULL;
void *eltptr;
const char *arrayname;
int i;
@@ -1069,9 +1043,7 @@ static void set_prop_arraylen(Object *obj, Visitor *v, const char *name,
name);
return;
}
- visit_type_uint32(v, name, alenptr, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, alenptr, errp)) {
return;
}
if (!*alenptr) {
@@ -1394,16 +1366,13 @@ static void set_prop_pcielinkspeed(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
PCIExpLinkSpeed *p = qdev_get_prop_ptr(dev, prop);
int speed;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_enum(v, prop->name, &speed, prop->info->enum_table, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_enum(v, prop->name, &speed, prop->info->enum_table, errp)) {
return;
}
@@ -1482,16 +1451,13 @@ static void set_prop_pcielinkwidth(Object *obj, Visitor *v, const char *name,
Property *prop = opaque;
PCIExpLinkWidth *p = qdev_get_prop_ptr(dev, prop);
int width;
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_enum(v, prop->name, &width, prop->info->enum_table, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_enum(v, prop->name, &width, prop->info->enum_table, errp)) {
return;
}
diff --git a/hw/cpu/core.c b/hw/cpu/core.c
index a92ac597ca..3a659291ea 100644
--- a/hw/cpu/core.c
+++ b/hw/cpu/core.c
@@ -28,12 +28,9 @@ static void core_prop_set_core_id(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
CPUCore *core = CPU_CORE(obj);
- Error *local_err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
@@ -58,12 +55,9 @@ static void core_prop_set_nr_threads(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
CPUCore *core = CPU_CORE(obj);
- Error *local_err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
diff --git a/hw/gpio/aspeed_gpio.c b/hw/gpio/aspeed_gpio.c
index dfa9db3d33..985a259e05 100644
--- a/hw/gpio/aspeed_gpio.c
+++ b/hw/gpio/aspeed_gpio.c
@@ -755,16 +755,13 @@ static void aspeed_gpio_get_pin(Object *obj, Visitor *v, const char *name,
static void aspeed_gpio_set_pin(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
- Error *local_err = NULL;
bool level;
int pin = 0xfff;
char group[4];
AspeedGPIOState *s = ASPEED_GPIO(obj);
int set_idx, group_idx = 0;
- visit_type_bool(v, name, &level, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &level, errp)) {
return;
}
if (sscanf(name, "gpio%2[A-Z]%1d", group, &pin) != 2) {
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 70d832536b..50e431346e 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1864,12 +1864,9 @@ static void pc_machine_set_max_ram_below_4g(Object *obj, Visitor *v,
Error **errp)
{
PCMachineState *pcms = PC_MACHINE(obj);
- Error *error = NULL;
uint64_t value;
- visit_type_size(v, name, &value, &error);
- if (error) {
- error_propagate(errp, error);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
if (value > 4 * GiB) {
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index f68fbee93d..358f10a92e 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -245,8 +245,7 @@ static void ide_dev_set_bootindex(Object *obj, Visitor *v, const char *name,
int32_t boot_index;
Error *local_err = NULL;
- visit_type_int32(v, name, &boot_index, &local_err);
- if (local_err) {
+ if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
}
/* check whether bootindex is present in fw_boot_order list */
diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c
index 7da2862b3d..dc070343c0 100644
--- a/hw/intc/apic_common.c
+++ b/hw/intc/apic_common.c
@@ -420,7 +420,6 @@ static void apic_common_set_id(Object *obj, Visitor *v, const char *name,
{
APICCommonState *s = APIC_COMMON(obj);
DeviceState *dev = DEVICE(obj);
- Error *local_err = NULL;
uint32_t value;
if (dev->realized) {
@@ -428,9 +427,7 @@ static void apic_common_set_id(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
diff --git a/hw/mem/nvdimm.c b/hw/mem/nvdimm.c
index 93f7af1c58..e6fdf6ccc3 100644
--- a/hw/mem/nvdimm.c
+++ b/hw/mem/nvdimm.c
@@ -45,7 +45,6 @@ static void nvdimm_set_label_size(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
NVDIMMDevice *nvdimm = NVDIMM(obj);
- Error *local_err = NULL;
uint64_t value;
if (nvdimm->nvdimm_mr) {
@@ -53,9 +52,7 @@ static void nvdimm_set_label_size(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_size(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &value, errp)) {
return;
}
if (value < MIN_NAMESPACE_LABEL_SIZE) {
@@ -88,8 +85,7 @@ static void nvdimm_set_uuid(Object *obj, Visitor *v, const char *name,
Error *local_err = NULL;
char *value;
- visit_type_str(v, name, &value, &local_err);
- if (local_err) {
+ if (!visit_type_str(v, name, &value, &local_err)) {
goto out;
}
diff --git a/hw/misc/aspeed_sdmc.c b/hw/misc/aspeed_sdmc.c
index 6fefb05695..0737d8de81 100644
--- a/hw/misc/aspeed_sdmc.c
+++ b/hw/misc/aspeed_sdmc.c
@@ -223,13 +223,10 @@ static void aspeed_sdmc_set_ram_size(Object *obj, Visitor *v, const char *name,
int i;
char *sz;
int64_t value;
- Error *local_err = NULL;
AspeedSDMCState *s = ASPEED_SDMC(obj);
AspeedSDMCClass *asc = ASPEED_SDMC_GET_CLASS(s);
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
diff --git a/hw/misc/pca9552.c b/hw/misc/pca9552.c
index cac729e35a..3e82c2838f 100644
--- a/hw/misc/pca9552.c
+++ b/hw/misc/pca9552.c
@@ -213,14 +213,11 @@ static void pca9552_set_led(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
PCA9552State *s = PCA9552(obj);
- Error *local_err = NULL;
int led, rc, reg, val;
uint8_t state;
char *state_str;
- visit_type_str(v, name, &state_str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &state_str, errp)) {
return;
}
rc = sscanf(name, "led%2d", &led);
diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c
index 58dbebca90..b47120492a 100644
--- a/hw/misc/tmp105.c
+++ b/hw/misc/tmp105.c
@@ -72,12 +72,9 @@ static void tmp105_set_temperature(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
TMP105State *s = TMP105(obj);
- Error *local_err = NULL;
int64_t temp;
- visit_type_int(v, name, &temp, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &temp, errp)) {
return;
}
if (temp >= 128000 || temp < -128000) {
diff --git a/hw/misc/tmp421.c b/hw/misc/tmp421.c
index 74864cd93d..49abe2d246 100644
--- a/hw/misc/tmp421.c
+++ b/hw/misc/tmp421.c
@@ -141,15 +141,12 @@ static void tmp421_set_temperature(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
TMP421State *s = TMP421(obj);
- Error *local_err = NULL;
int64_t temp;
bool ext_range = (s->config[0] & TMP421_CONFIG_RANGE);
int offset = ext_range * 64 * 256;
int tempid;
- visit_type_int(v, name, &temp, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &temp, errp)) {
return;
}
diff --git a/hw/net/ne2000-isa.c b/hw/net/ne2000-isa.c
index fdf8faa0d9..765bcd1f0b 100644
--- a/hw/net/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
@@ -113,8 +113,7 @@ static void isa_ne2000_set_bootindex(Object *obj, Visitor *v,
int32_t boot_index;
Error *local_err = NULL;
- visit_type_int32(v, name, &boot_index, &local_err);
- if (local_err) {
+ if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
}
/* check whether bootindex is present in fw_boot_order list */
diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
index efdc0dbbcf..416c85bfb1 100644
--- a/hw/ppc/spapr_caps.c
+++ b/hw/ppc/spapr_caps.c
@@ -86,11 +86,8 @@ static void spapr_cap_set_bool(Object *obj, Visitor *v, const char *name,
SpaprCapabilityInfo *cap = opaque;
SpaprMachineState *spapr = SPAPR_MACHINE(obj);
bool value;
- Error *local_err = NULL;
- visit_type_bool(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
@@ -123,13 +120,10 @@ static void spapr_cap_set_string(Object *obj, Visitor *v, const char *name,
{
SpaprCapabilityInfo *cap = opaque;
SpaprMachineState *spapr = SPAPR_MACHINE(obj);
- Error *local_err = NULL;
uint8_t i;
char *val;
- visit_type_str(v, name, &val, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &val, errp)) {
return;
}
@@ -169,11 +163,8 @@ static void spapr_cap_set_pagesize(Object *obj, Visitor *v, const char *name,
SpaprMachineState *spapr = SPAPR_MACHINE(obj);
uint64_t pagesize;
uint8_t val;
- Error *local_err = NULL;
- visit_type_size(v, name, &pagesize, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_size(v, name, &pagesize, errp)) {
return;
}
diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c
index 951bcdf2c0..c8e8ba2ee8 100644
--- a/hw/ppc/spapr_drc.c
+++ b/hw/ppc/spapr_drc.c
@@ -327,9 +327,7 @@ static void prop_get_fdt(Object *obj, Visitor *v, const char *name,
case FDT_BEGIN_NODE:
fdt_depth++;
name = fdt_get_name(fdt, fdt_offset, &name_len);
- visit_start_struct(v, name, NULL, 0, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_start_struct(v, name, NULL, 0, errp)) {
return;
}
break;
@@ -348,15 +346,12 @@ static void prop_get_fdt(Object *obj, Visitor *v, const char *name,
int i;
prop = fdt_get_property_by_offset(fdt, fdt_offset, &prop_len);
name = fdt_string(fdt, fdt32_to_cpu(prop->nameoff));
- visit_start_list(v, name, NULL, 0, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_start_list(v, name, NULL, 0, errp)) {
return;
}
for (i = 0; i < prop_len; i++) {
- visit_type_uint8(v, NULL, (uint8_t *)&prop->data[i], &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_uint8(v, NULL, (uint8_t *)&prop->data[i],
+ errp)) {
return;
}
}
diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index d1e365e3e6..519dc91316 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -2377,7 +2377,6 @@ static void set_css_devid(Object *obj, Visitor *v, const char *name,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
CssDevId *dev_id = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
char *str;
int num, n1, n2;
unsigned int cssid, ssid, devid;
@@ -2387,9 +2386,7 @@ static void set_css_devid(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
diff --git a/hw/tpm/tpm_util.c b/hw/tpm/tpm_util.c
index c0a0f3d71f..ca3ea20bdb 100644
--- a/hw/tpm/tpm_util.c
+++ b/hw/tpm/tpm_util.c
@@ -48,7 +48,6 @@ static void set_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
Error **errp)
{
DeviceState *dev = DEVICE(obj);
- Error *local_err = NULL;
Property *prop = opaque;
TPMBackend *s, **be = qdev_get_prop_ptr(dev, prop);
char *str;
@@ -58,9 +57,7 @@ static void set_tpm(Object *obj, Visitor *v, const char *name, void *opaque,
return;
}
- visit_type_str(v, name, &str, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &str, errp)) {
return;
}
diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
index f5977eb72e..1c3bd2578c 100644
--- a/hw/usb/dev-storage.c
+++ b/hw/usb/dev-storage.c
@@ -736,8 +736,7 @@ static void usb_msd_set_bootindex(Object *obj, Visitor *v, const char *name,
int32_t boot_index;
Error *local_err = NULL;
- visit_type_int32(v, name, &boot_index, &local_err);
- if (local_err) {
+ if (!visit_type_int32(v, name, &boot_index, &local_err)) {
goto out;
}
/* check whether bootindex is present in fw_boot_order list */
diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
index d304c81148..3a14b7c303 100644
--- a/hw/vfio/pci-quirks.c
+++ b/hw/vfio/pci-quirks.c
@@ -1502,16 +1502,13 @@ static void set_nv_gpudirect_clique_id(Object *obj, Visitor *v,
DeviceState *dev = DEVICE(obj);
Property *prop = opaque;
uint8_t value, *ptr = qdev_get_prop_ptr(dev, prop);
- Error *local_err = NULL;
if (dev->realized) {
qdev_prop_set_after_realize(dev, name, errp);
return;
}
- visit_type_uint8(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint8(v, name, &value, errp)) {
return;
}
diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
index 10507b2a43..8eb652a348 100644
--- a/hw/virtio/virtio-balloon.c
+++ b/hw/virtio/virtio-balloon.c
@@ -233,22 +233,18 @@ static void balloon_stats_get_all(Object *obj, Visitor *v, const char *name,
VirtIOBalloon *s = opaque;
int i;
- visit_start_struct(v, name, NULL, 0, &err);
- if (err) {
+ if (!visit_start_struct(v, name, NULL, 0, &err)) {
goto out;
}
- visit_type_int(v, "last-update", &s->stats_last_update, &err);
- if (err) {
+ if (!visit_type_int(v, "last-update", &s->stats_last_update, &err)) {
goto out_end;
}
- visit_start_struct(v, "stats", NULL, 0, &err);
- if (err) {
+ if (!visit_start_struct(v, "stats", NULL, 0, &err)) {
goto out_end;
}
for (i = 0; i < VIRTIO_BALLOON_S_NR; i++) {
- visit_type_uint64(v, balloon_stat_names[i], &s->stats[i], &err);
- if (err) {
+ if (!visit_type_uint64(v, balloon_stat_names[i], &s->stats[i], &err)) {
goto out_nested;
}
}
@@ -278,12 +274,9 @@ static void balloon_stats_set_poll_interval(Object *obj, Visitor *v,
Error **errp)
{
VirtIOBalloon *s = opaque;
- Error *local_err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
diff --git a/iothread.c b/iothread.c
index b465e5c25b..0598a6d20d 100644
--- a/iothread.c
+++ b/iothread.c
@@ -239,12 +239,9 @@ static void iothread_set_poll_param(Object *obj, Visitor *v,
IOThread *iothread = IOTHREAD(obj);
PollParamInfo *info = opaque;
int64_t *field = (void *)iothread + info->offset;
- Error *local_err = NULL;
int64_t value;
- visit_type_int64(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int64(v, name, &value, errp)) {
return;
}
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index d7810cb564..9588c2d81f 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -1355,8 +1355,7 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict)
break;
case MIGRATION_PARAMETER_XBZRLE_CACHE_SIZE:
p->has_xbzrle_cache_size = true;
- visit_type_size(v, param, &cache_size, &err);
- if (err) {
+ if (!visit_type_size(v, param, &cache_size, &err)) {
break;
}
if (cache_size > INT64_MAX || (size_t)cache_size != cache_size) {
diff --git a/net/colo-compare.c b/net/colo-compare.c
index b18b096a6e..398b7546ff 100644
--- a/net/colo-compare.c
+++ b/net/colo-compare.c
@@ -1093,12 +1093,9 @@ static void compare_set_timeout(Object *obj, Visitor *v,
Error **errp)
{
CompareState *s = COLO_COMPARE(obj);
- Error *local_err = NULL;
uint32_t value;
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
if (!value) {
@@ -1124,12 +1121,9 @@ static void compare_set_expired_scan_cycle(Object *obj, Visitor *v,
Error **errp)
{
CompareState *s = COLO_COMPARE(obj);
- Error *local_err = NULL;
uint32_t value;
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
if (!value) {
diff --git a/net/dump.c b/net/dump.c
index e8c4071d59..11a737a4bc 100644
--- a/net/dump.c
+++ b/net/dump.c
@@ -192,12 +192,9 @@ static void filter_dump_set_maxlen(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
NetFilterDumpState *nfds = FILTER_DUMP(obj);
- Error *local_err = NULL;
uint32_t value;
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
if (value == 0) {
diff --git a/net/filter-buffer.c b/net/filter-buffer.c
index c3892911b8..dfa211794b 100644
--- a/net/filter-buffer.c
+++ b/net/filter-buffer.c
@@ -170,12 +170,9 @@ static void filter_buffer_set_interval(Object *obj, Visitor *v,
Error **errp)
{
FilterBufferState *s = FILTER_BUFFER(obj);
- Error *local_err = NULL;
uint32_t value;
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
if (!value) {
diff --git a/qom/object.c b/qom/object.c
index 6ece96bc2b..780a700542 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -2078,11 +2078,8 @@ static void property_set_str(Object *obj, Visitor *v, const char *name,
{
StringProperty *prop = opaque;
char *value;
- Error *local_err = NULL;
- visit_type_str(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &value, errp)) {
return;
}
@@ -2159,11 +2156,8 @@ static void property_set_bool(Object *obj, Visitor *v, const char *name,
{
BoolProperty *prop = opaque;
bool value;
- Error *local_err = NULL;
- visit_type_bool(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
@@ -2232,11 +2226,8 @@ static void property_set_enum(Object *obj, Visitor *v, const char *name,
{
EnumProperty *prop = opaque;
int value;
- Error *err = NULL;
- visit_type_enum(v, name, &value, prop->lookup, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_enum(v, name, &value, prop->lookup, errp)) {
return;
}
prop->set(obj, value, errp);
@@ -2305,32 +2296,25 @@ static void property_get_tm(Object *obj, Visitor *v, const char *name,
goto out;
}
- visit_start_struct(v, name, NULL, 0, &err);
- if (err) {
+ if (!visit_start_struct(v, name, NULL, 0, &err)) {
goto out;
}
- visit_type_int32(v, "tm_year", &value.tm_year, &err);
- if (err) {
+ if (!visit_type_int32(v, "tm_year", &value.tm_year, &err)) {
goto out_end;
}
- visit_type_int32(v, "tm_mon", &value.tm_mon, &err);
- if (err) {
+ if (!visit_type_int32(v, "tm_mon", &value.tm_mon, &err)) {
goto out_end;
}
- visit_type_int32(v, "tm_mday", &value.tm_mday, &err);
- if (err) {
+ if (!visit_type_int32(v, "tm_mday", &value.tm_mday, &err)) {
goto out_end;
}
- visit_type_int32(v, "tm_hour", &value.tm_hour, &err);
- if (err) {
+ if (!visit_type_int32(v, "tm_hour", &value.tm_hour, &err)) {
goto out_end;
}
- visit_type_int32(v, "tm_min", &value.tm_min, &err);
- if (err) {
+ if (!visit_type_int32(v, "tm_min", &value.tm_min, &err)) {
goto out_end;
}
- visit_type_int32(v, "tm_sec", &value.tm_sec, &err);
- if (err) {
+ if (!visit_type_int32(v, "tm_sec", &value.tm_sec, &err)) {
goto out_end;
}
visit_check_struct(v, &err);
@@ -2392,11 +2376,8 @@ static void property_set_uint8_ptr(Object *obj, Visitor *v, const char *name,
{
uint8_t *field = opaque;
uint8_t value;
- Error *local_err = NULL;
- visit_type_uint8(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint8(v, name, &value, errp)) {
return;
}
@@ -2415,11 +2396,8 @@ static void property_set_uint16_ptr(Object *obj, Visitor *v, const char *name,
{
uint16_t *field = opaque;
uint16_t value;
- Error *local_err = NULL;
- visit_type_uint16(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint16(v, name, &value, errp)) {
return;
}
@@ -2438,11 +2416,8 @@ static void property_set_uint32_ptr(Object *obj, Visitor *v, const char *name,
{
uint32_t *field = opaque;
uint32_t value;
- Error *local_err = NULL;
- visit_type_uint32(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint32(v, name, &value, errp)) {
return;
}
@@ -2461,11 +2436,8 @@ static void property_set_uint64_ptr(Object *obj, Visitor *v, const char *name,
{
uint64_t *field = opaque;
uint64_t value;
- Error *local_err = NULL;
- visit_type_uint64(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_uint64(v, name, &value, errp)) {
return;
}
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index 7e26f86fa6..3085ae0b31 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -63,8 +63,7 @@ Object *user_creatable_add_type(const char *type, const char *id,
assert(qdict);
obj = object_new(type);
- visit_start_struct(v, NULL, NULL, 0, &local_err);
- if (local_err) {
+ if (!visit_start_struct(v, NULL, NULL, 0, &local_err)) {
goto out;
}
for (e = qdict_first(qdict); e; e = qdict_next(qdict, e)) {
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
index 778cecc2e6..fcb3eedabb 100644
--- a/target/arm/cpu64.c
+++ b/target/arm/cpu64.c
@@ -464,12 +464,9 @@ static void cpu_max_set_sve_max_vq(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
ARMCPU *cpu = ARM_CPU(obj);
- Error *err = NULL;
uint32_t max_vq;
- visit_type_uint32(v, name, &max_vq, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_uint32(v, name, &max_vq, errp)) {
return;
}
@@ -510,12 +507,9 @@ static void cpu_arm_set_sve_vq(Object *obj, Visitor *v, const char *name,
{
ARMCPU *cpu = ARM_CPU(obj);
uint32_t vq = atoi(&name[3]) / 128;
- Error *err = NULL;
bool value;
- visit_type_bool(v, name, &value, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
@@ -546,13 +540,10 @@ static void cpu_arm_set_sve(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
ARMCPU *cpu = ARM_CPU(obj);
- Error *err = NULL;
bool value;
uint64_t t;
- visit_type_bool(v, name, &value, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
diff --git a/target/arm/monitor.c b/target/arm/monitor.c
index ea6598c412..fdab052acd 100644
--- a/target/arm/monitor.c
+++ b/target/arm/monitor.c
@@ -174,11 +174,9 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(CpuModelExpansionType type,
Error *err = NULL;
visitor = qobject_input_visitor_new(model->props);
- visit_start_struct(visitor, NULL, NULL, 0, &err);
- if (err) {
+ if (!visit_start_struct(visitor, NULL, NULL, 0, errp)) {
visit_free(visitor);
object_unref(obj);
- error_propagate(errp, err);
return NULL;
}
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index b1b311baa2..ef5cf587b6 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -4408,12 +4408,9 @@ static void x86_cpuid_version_set_family(Object *obj, Visitor *v,
CPUX86State *env = &cpu->env;
const int64_t min = 0;
const int64_t max = 0xff + 0xf;
- Error *local_err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
if (value < min || value > max) {
@@ -4451,12 +4448,9 @@ static void x86_cpuid_version_set_model(Object *obj, Visitor *v,
CPUX86State *env = &cpu->env;
const int64_t min = 0;
const int64_t max = 0xff;
- Error *local_err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
if (value < min || value > max) {
@@ -4489,12 +4483,9 @@ static void x86_cpuid_version_set_stepping(Object *obj, Visitor *v,
CPUX86State *env = &cpu->env;
const int64_t min = 0;
const int64_t max = 0xf;
- Error *local_err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
if (value < min || value > max) {
@@ -4594,12 +4585,9 @@ static void x86_cpuid_set_tsc_freq(Object *obj, Visitor *v, const char *name,
X86CPU *cpu = X86_CPU(obj);
const int64_t min = 0;
const int64_t max = INT64_MAX;
- Error *local_err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
if (value < min || value > max) {
@@ -6799,7 +6787,6 @@ static void x86_cpu_set_bit_prop(Object *obj, Visitor *v, const char *name,
DeviceState *dev = DEVICE(obj);
X86CPU *cpu = X86_CPU(obj);
BitProperty *fp = opaque;
- Error *local_err = NULL;
bool value;
if (dev->realized) {
@@ -6807,9 +6794,7 @@ static void x86_cpu_set_bit_prop(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_bool(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
diff --git a/target/ppc/compat.c b/target/ppc/compat.c
index fda0dfe8f8..08aede88dc 100644
--- a/target/ppc/compat.c
+++ b/target/ppc/compat.c
@@ -260,13 +260,10 @@ static void ppc_compat_prop_get(Object *obj, Visitor *v, const char *name,
static void ppc_compat_prop_set(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
- Error *local_err = NULL;
char *value;
uint32_t compat_pvr;
- visit_type_str(v, name, &value, &local_err);
- if (local_err) {
- error_propagate(errp, local_err);
+ if (!visit_type_str(v, name, &value, errp)) {
return;
}
diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
index 2fa609bffe..aadd92247f 100644
--- a/target/s390x/cpu_models.c
+++ b/target/s390x/cpu_models.c
@@ -510,9 +510,7 @@ static void cpu_model_from_info(S390CPUModel *model, const CpuModelInfo *info,
if (qdict) {
visitor = qobject_input_visitor_new(info->props);
- visit_start_struct(visitor, NULL, NULL, 0, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_start_struct(visitor, NULL, NULL, 0, errp)) {
visit_free(visitor);
object_unref(obj);
return;
@@ -1001,7 +999,6 @@ static void get_feature(Object *obj, Visitor *v, const char *name,
static void set_feature(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
- Error *err = NULL;
S390Feat feat = (S390Feat) opaque;
DeviceState *dev = DEVICE(obj);
S390CPU *cpu = S390_CPU(obj);
@@ -1017,9 +1014,7 @@ static void set_feature(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_bool(v, name, &value, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
if (value) {
@@ -1059,7 +1054,6 @@ static void get_feature_group(Object *obj, Visitor *v, const char *name,
static void set_feature_group(Object *obj, Visitor *v, const char *name,
void *opaque, Error **errp)
{
- Error *err = NULL;
S390FeatGroup group = (S390FeatGroup) opaque;
const S390FeatGroupDef *def = s390_feat_group_def(group);
DeviceState *dev = DEVICE(obj);
@@ -1076,9 +1070,7 @@ static void set_feature_group(Object *obj, Visitor *v, const char *name,
return;
}
- visit_type_bool(v, name, &value, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_bool(v, name, &value, errp)) {
return;
}
if (value) {
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c
index 3f05aba9d6..cf21efd85f 100644
--- a/target/sparc/cpu.c
+++ b/target/sparc/cpu.c
@@ -801,12 +801,9 @@ static void sparc_set_nwindows(Object *obj, Visitor *v, const char *name,
const int64_t min = MIN_NWINDOWS;
const int64_t max = MAX_NWINDOWS;
SPARCCPU *cpu = SPARC_CPU(obj);
- Error *err = NULL;
int64_t value;
- visit_type_int(v, name, &value, &err);
- if (err) {
- error_propagate(errp, err);
+ if (!visit_type_int(v, name, &value, errp)) {
return;
}
--
2.26.2
next prev parent reply other threads:[~2020-06-24 16:57 UTC|newest]
Thread overview: 157+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-24 16:42 [PATCH 00/46] Less clumsy error checking Markus Armbruster
2020-06-24 16:42 ` [PATCH 01/46] error: Improve examples in error.h's big comment Markus Armbruster
2020-06-24 16:59 ` Eric Blake
2020-06-25 14:43 ` Vladimir Sementsov-Ogievskiy
2020-06-25 14:44 ` Greg Kurz
2020-06-25 15:28 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 02/46] error: Document Error API usage rules Markus Armbruster
2020-06-24 17:51 ` Eric Blake
2020-06-25 7:16 ` Vladimir Sementsov-Ogievskiy
2020-06-25 11:23 ` Markus Armbruster
2020-06-25 11:46 ` Vladimir Sementsov-Ogievskiy
2020-06-25 15:17 ` Greg Kurz
2020-06-25 15:30 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 03/46] qdev: Smooth error checking of qdev_realize() & friends Markus Armbruster
2020-06-24 18:03 ` Eric Blake
2020-06-25 11:36 ` Markus Armbruster
2020-06-25 12:39 ` Markus Armbruster
2020-06-25 19:00 ` Vladimir Sementsov-Ogievskiy
2020-06-26 6:19 ` Markus Armbruster
2020-07-02 14:56 ` Markus Armbruster
2020-07-03 10:41 ` Markus Armbruster
2020-06-29 10:40 ` Greg Kurz
2020-06-24 16:43 ` [PATCH 04/46] macio: Tidy up error handling in macio_newworld_realize() Markus Armbruster
2020-06-24 21:52 ` Eric Blake
2020-06-24 23:54 ` David Gibson
2020-06-25 19:09 ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 05/46] virtio-crypto-pci: Tidy up virtio_crypto_pci_realize() Markus Armbruster
2020-06-24 21:52 ` Eric Blake
2020-06-25 19:12 ` Vladimir Sementsov-Ogievskiy
2020-06-28 0:50 ` Gonglei (Arei)
2020-06-24 16:43 ` [PATCH 06/46] error: Avoid error_propagate() when error is not used here Markus Armbruster
2020-06-24 18:17 ` Eric Blake
2020-06-25 12:39 ` Markus Armbruster
2020-06-26 14:36 ` Vladimir Sementsov-Ogievskiy
2020-06-27 11:57 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 07/46] error: Avoid more " Markus Armbruster
2020-06-24 18:21 ` Eric Blake
2020-06-25 12:50 ` Markus Armbruster
2020-06-25 14:41 ` Eric Blake
2020-06-26 17:21 ` Vladimir Sementsov-Ogievskiy
2020-06-27 12:18 ` Markus Armbruster
2020-07-02 12:54 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 08/46] error: Avoid unnecessary error_propagate() after error_setg() Markus Armbruster
2020-06-24 18:32 ` Eric Blake
2020-06-25 13:05 ` Markus Armbruster
2020-06-26 18:22 ` Vladimir Sementsov-Ogievskiy
2020-06-27 11:56 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 09/46] error: Avoid error_propagate() after migrate_add_blocker() Markus Armbruster
2020-06-24 19:34 ` Eric Blake
2020-06-29 8:29 ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 10/46] qemu-option: Check return value instead of @err where convenient Markus Armbruster
2020-06-24 19:36 ` Eric Blake
2020-06-29 9:11 ` Vladimir Sementsov-Ogievskiy
2020-07-01 8:02 ` Markus Armbruster
2020-07-02 9:28 ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 11/46] qemu-option: Make uses of find_desc_by_name() more similar Markus Armbruster
2020-06-24 19:37 ` Eric Blake
2020-06-29 9:25 ` Vladimir Sementsov-Ogievskiy
2020-06-29 9:36 ` Vladimir Sementsov-Ogievskiy
2020-06-29 9:47 ` Vladimir Sementsov-Ogievskiy
2020-07-01 8:07 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 12/46] qemu-option: Factor out helper find_default_by_name() Markus Armbruster
2020-06-24 19:38 ` Eric Blake
2020-06-29 9:46 ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 13/46] qemu-option: Simplify around find_default_by_name() Markus Armbruster
2020-06-24 19:46 ` Eric Blake
2020-06-25 13:12 ` Markus Armbruster
2020-06-29 10:02 ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 14/46] qemu-option: Factor out helper opt_create() Markus Armbruster
2020-06-24 19:47 ` Eric Blake
2020-06-29 10:09 ` Vladimir Sementsov-Ogievskiy
2020-07-01 8:13 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 15/46] qemu-option: Tidy up opt_set() not to free arguments on failure Markus Armbruster
2020-06-24 19:50 ` Eric Blake
2020-06-29 10:37 ` Vladimir Sementsov-Ogievskiy
2020-07-01 9:01 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 16/46] qemu-option: Make functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 19:55 ` Eric Blake
2020-06-29 11:15 ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 17/46] qemu-option: Smooth error checking with Coccinelle Markus Armbruster
2020-06-24 20:08 ` Eric Blake
2020-06-25 13:33 ` Markus Armbruster
2020-06-29 13:58 ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 18/46] qemu-option: Smooth error checking manually Markus Armbruster
2020-06-24 20:10 ` Eric Blake
2020-06-25 13:46 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 19/46] block: Avoid unnecessary error_propagate() after error_setg() Markus Armbruster
2020-06-24 20:12 ` Eric Blake
2020-06-24 16:43 ` [PATCH 20/46] block: Avoid error accumulation in bdrv_img_create() Markus Armbruster
2020-06-24 20:14 ` Eric Blake
2020-06-25 13:47 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 21/46] hmp: Eliminate a variable in hmp_migrate_set_parameter() Markus Armbruster
2020-06-24 20:15 ` Eric Blake
2020-06-24 16:43 ` [PATCH 22/46] qapi: Make visitor functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 20:43 ` Eric Blake
2020-06-25 14:56 ` Markus Armbruster
2020-06-24 16:43 ` Markus Armbruster [this message]
2020-06-24 20:50 ` [PATCH 23/46] qapi: Smooth error checking with Coccinelle Eric Blake
2020-06-25 15:03 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 24/46] qapi: Smooth error checking manually Markus Armbruster
2020-06-24 20:53 ` Eric Blake
2020-06-24 16:43 ` [PATCH 25/46] qapi: Smooth visitor error checking in generated code Markus Armbruster
2020-06-24 20:58 ` Eric Blake
2020-06-24 16:43 ` [PATCH 26/46] qapi: Smooth another visitor error checking pattern Markus Armbruster
2020-06-24 21:02 ` Eric Blake
2020-06-24 16:43 ` [PATCH 27/46] qapi: Purge error_propagate() from QAPI core Markus Armbruster
2020-06-24 21:03 ` Eric Blake
2020-06-24 16:43 ` [PATCH 28/46] block/parallels: Simplify parallels_open() after previous commit Markus Armbruster
2020-06-24 21:03 ` Eric Blake
2020-06-24 16:43 ` [PATCH 29/46] acpi: Avoid unnecessary error_propagate() after error_setg() Markus Armbruster
2020-06-24 21:04 ` Eric Blake
2020-06-24 16:43 ` [PATCH 30/46] s390x/pci: Fix harmless mistake in zpci's property fid's setter Markus Armbruster
2020-06-24 19:31 ` Matthew Rosato
2020-06-25 7:03 ` Cornelia Huck
2020-06-24 16:43 ` [PATCH 31/46] qom: Use error_reportf_err() instead of g_printerr() in examples Markus Armbruster
2020-06-24 21:05 ` Eric Blake
2020-06-24 16:43 ` [PATCH 32/46] qom: Rename qdev_get_type() to object_get_type() Markus Armbruster
2020-06-24 21:06 ` Eric Blake
2020-06-25 6:33 ` Philippe Mathieu-Daudé
2020-06-24 16:43 ` [PATCH 33/46] qom: Crash more nicely on object_property_get_link() failure Markus Armbruster
2020-06-24 21:07 ` Eric Blake
2020-06-25 15:05 ` Markus Armbruster
2020-07-02 12:11 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 34/46] qom: Don't handle impossible " Markus Armbruster
2020-06-24 21:13 ` Eric Blake
2020-06-25 6:36 ` Philippe Mathieu-Daudé
2020-06-25 15:09 ` Markus Armbruster
2020-06-29 14:38 ` Philippe Mathieu-Daudé
2020-07-01 9:15 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 35/46] qom: Use return values to check for error where that's simpler Markus Armbruster
2020-06-24 21:24 ` Eric Blake
2020-06-24 16:43 ` [PATCH 36/46] qom: Put name parameter before value / visitor parameter Markus Armbruster
2020-06-24 21:27 ` Eric Blake
2020-06-25 15:14 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 37/46] qom: Make functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 21:32 ` Eric Blake
2020-06-25 15:14 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 38/46] qom: Smooth error checking with Coccinelle Markus Armbruster
2020-06-24 21:35 ` Eric Blake
2020-06-24 16:43 ` [PATCH 39/46] qom: Smooth error checking manually Markus Armbruster
2020-06-24 21:38 ` Eric Blake
2020-06-24 16:43 ` [PATCH 40/46] qom: Make functions taking Error ** return bool, not 0/-1 Markus Armbruster
2020-06-24 21:40 ` Eric Blake
2020-06-24 16:43 ` [PATCH 41/46] qdev: Make functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 21:40 ` Eric Blake
2020-06-24 16:43 ` [PATCH 42/46] qdev: Smooth error checking with Coccinelle Markus Armbruster
2020-06-24 21:41 ` Eric Blake
2020-06-24 16:43 ` [PATCH 43/46] qdev: Smooth error checking manually Markus Armbruster
2020-06-24 21:42 ` Eric Blake
2020-06-25 15:15 ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 44/46] qemu-img: Ignore Error objects where the return value suffices Markus Armbruster
2020-06-24 21:49 ` Eric Blake
2020-06-24 16:43 ` [PATCH 45/46] qdev: " Markus Armbruster
2020-06-24 21:50 ` Eric Blake
2020-06-24 16:43 ` [PATCH 46/46] hmp: " Markus Armbruster
2020-06-24 21:51 ` Eric Blake
2020-06-24 16:58 ` [PATCH 00/46] Less clumsy error checking Paolo Bonzini
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=20200624164344.3778251-24-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=ehabkost@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=vsementsov@virtuozzo.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).