From nobody Wed Nov 5 15:55:27 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1497373172599523.7523292036159; Tue, 13 Jun 2017 09:59:32 -0700 (PDT) Received: from localhost ([::1]:44324 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dKpA8-0000jo-Mn for importer@patchew.org; Tue, 13 Jun 2017 12:59:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51040) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dKp4v-0004lp-GS for qemu-devel@nongnu.org; Tue, 13 Jun 2017 12:54:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dKp4e-0000WW-PU for qemu-devel@nongnu.org; Tue, 13 Jun 2017 12:54:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58428) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dKp4d-0000VU-UO for qemu-devel@nongnu.org; Tue, 13 Jun 2017 12:53:48 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D4FD1C04B93E; Tue, 13 Jun 2017 16:53:46 +0000 (UTC) Received: from localhost (ovpn-116-27.gru2.redhat.com [10.97.116.27]) by smtp.corp.redhat.com (Postfix) with ESMTP id D074C8C59F; Tue, 13 Jun 2017 16:53:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D4FD1C04B93E Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=ehabkost@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com D4FD1C04B93E From: Eduardo Habkost To: qemu-devel@nongnu.org Date: Tue, 13 Jun 2017 13:53:12 -0300 Message-Id: <20170613165313.20954-15-ehabkost@redhat.com> In-Reply-To: <20170613165313.20954-1-ehabkost@redhat.com> References: <20170613165313.20954-1-ehabkost@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Tue, 13 Jun 2017 16:53:47 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [RFC 14/15] [coccinelle] Eliminate unnecessary local_err/error_propagate() usage X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Markus Armbruster , Michael Roth Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Now we can check for errors on errp using the ERR_IS_SET() macro, even if errors are being ignored. Replace common local_err/error_propagate() usage using the following Coccinelle script: @ simple_propagate @ typedef Error; type T; identifier FN; expression some_func; identifier errp; identifier local_err; @@ T FN(..., Error **errp) { ... - Error *local_err =3D NULL; <... when !=3D local_err ( some_func(..., - &local_err + errp ); ... when !=3D local_err ( error_propagate(errp, local_err); | if (local_err) { ... when !=3D local_err error_propagate(errp, local_err); ... when !=3D local_err } ) | if ( - local_err + ERR_IS_SET(errp) ) { ... when !=3D local_err - error_propagate(errp, local_err); ... when !=3D local_err } | - error_propagate(errp, local_err); ) ...> } From the 792 error_propagate() calls in the tree, 346 were automatically converted by the script. Probably we can write a more complex script that catches many of the remaining cases later, or convert them manually. Signed-off-by: Eduardo Habkost --- qapi/qapi-visit-core.c | 6 +- backends/hostmem.c | 6 +- backends/rng.c | 6 +- backends/tpm.c | 6 +- block.c | 41 ++++------ block/blkdebug.c | 16 ++-- block/block-backend.c | 6 +- block/commit.c | 16 ++-- block/crypto.c | 6 +- block/curl.c | 6 +- block/file-posix.c | 6 +- block/gluster.c | 6 +- block/io.c | 11 +-- block/iscsi.c | 27 +++---- block/mirror.c | 12 +-- block/nbd.c | 18 ++--- block/nfs.c | 12 +-- block/qapi.c | 6 +- block/qcow2.c | 11 +-- block/raw-format.c | 6 +- block/rbd.c | 6 +- block/replication.c | 10 +-- block/sheepdog.c | 28 +++---- block/ssh.c | 12 +-- blockdev.c | 45 ++++------- blockjob.c | 13 +-- bootdevice.c | 13 +-- chardev/char.c | 6 +- dump.c | 153 +++++++++++---------------------= ---- exec.c | 18 ++--- hw/arm/allwinner-a10.c | 26 +++--- hw/arm/armv7m.c | 26 +++--- hw/arm/digic.c | 21 ++--- hw/arm/fsl-imx25.c | 61 ++++++-------- hw/arm/fsl-imx31.c | 56 ++++++------- hw/arm/fsl-imx6.c | 76 +++++++----------- hw/arm/xlnx-zynqmp.c | 6 +- hw/block/fdc.c | 23 ++---- hw/block/pflash_cfi01.c | 6 +- hw/block/pflash_cfi02.c | 6 +- hw/block/virtio-blk.c | 16 ++-- hw/char/debugcon.c | 6 +- hw/char/serial-pci.c | 12 +-- hw/char/virtio-serial-bus.c | 6 +- hw/core/machine.c | 12 +-- hw/core/qdev-properties-system.c | 24 ++---- hw/core/qdev-properties.c | 47 ++++------- hw/core/qdev.c | 6 +- hw/cpu/a15mpcore.c | 6 +- hw/cpu/a9mpcore.c | 26 +++--- hw/cpu/arm11mpcore.c | 21 ++--- hw/cpu/core.c | 12 +-- hw/cpu/realview_mpcore.c | 11 +-- hw/display/qxl.c | 6 +- hw/display/virtio-gpu.c | 6 +- hw/display/virtio-vga.c | 6 +- hw/i386/kvm/pci-assign.c | 6 +- hw/i386/pc.c | 6 +- hw/input/virtio-input.c | 12 +-- hw/intc/apic_common.c | 6 +- hw/intc/arm_gic.c | 6 +- hw/intc/arm_gic_kvm.c | 11 +-- hw/intc/arm_gicv3.c | 6 +- hw/intc/arm_gicv3_its_kvm.c | 6 +- hw/intc/arm_gicv3_kvm.c | 11 +-- hw/intc/armv7m_nvic.c | 6 +- hw/intc/realview_gic.c | 6 +- hw/ipack/ipack.c | 4 +- hw/misc/ivshmem.c | 18 ++--- hw/misc/macio/macio.c | 33 +++----- hw/misc/tmp105.c | 6 +- hw/net/dp8393x.c | 6 +- hw/nvram/fw_cfg.c | 12 +-- hw/pci-bridge/pci_expander_bridge.c | 6 +- hw/pci/pci.c | 17 ++-- hw/pci/shpc.c | 12 +-- hw/ppc/e500.c | 6 +- hw/ppc/pnv.c | 32 +++----- hw/ppc/pnv_core.c | 16 ++-- hw/ppc/spapr.c | 12 +-- hw/ppc/spapr_drc.c | 26 +++--- hw/ppc/spapr_pci.c | 12 +-- hw/s390x/css-bridge.c | 6 +- hw/s390x/css.c | 6 +- hw/s390x/virtio-ccw.c | 16 ++-- hw/scsi/esp-pci.c | 6 +- hw/scsi/scsi-bus.c | 17 ++-- hw/scsi/scsi-disk.c | 11 +-- hw/scsi/vhost-scsi.c | 11 +-- hw/scsi/virtio-scsi.c | 6 +- hw/usb/bus.c | 32 +++----- hw/usb/dev-serial.c | 6 +- hw/usb/hcd-ohci.c | 12 +-- hw/usb/hcd-uhci.c | 6 +- hw/vfio/pci.c | 11 +-- hw/virtio/virtio-balloon.c | 6 +- hw/virtio/virtio-pci.c | 6 +- hw/virtio/virtio-rng.c | 6 +- hw/virtio/virtio.c | 17 ++-- migration/colo.c | 12 +-- migration/migration.c | 6 +- net/filter.c | 6 +- net/tap.c | 6 +- qapi/string-input-visitor.c | 6 +- qdev-monitor.c | 6 +- qga/commands-posix.c | 80 ++++++------------- qga/commands-win32.c | 18 ++--- qmp.c | 11 +-- qom/object.c | 84 +++++++------------- replication.c | 24 ++---- target/alpha/cpu.c | 6 +- target/arm/cpu.c | 6 +- target/cris/cpu.c | 6 +- target/hppa/cpu.c | 6 +- target/i386/cpu.c | 42 ++++------ target/lm32/cpu.c | 6 +- target/m68k/cpu.c | 6 +- target/microblaze/cpu.c | 6 +- target/mips/cpu.c | 6 +- target/moxie/cpu.c | 6 +- target/nios2/cpu.c | 6 +- target/openrisc/cpu.c | 6 +- target/ppc/translate_init.c | 23 ++---- target/s390x/cpu.c | 6 +- target/sh4/cpu.c | 6 +- target/sparc/cpu.c | 6 +- target/tilegx/cpu.c | 6 +- target/tricore/cpu.c | 6 +- target/unicore32/cpu.c | 6 +- target/xtensa/cpu.c | 6 +- util/qemu-config.c | 6 +- util/qemu-option.c | 18 ++--- 132 files changed, 691 insertions(+), 1310 deletions(-) diff --git a/qapi/qapi-visit-core.c b/qapi/qapi-visit-core.c index 43a09d147d..e4700d3ff9 100644 --- a/qapi/qapi-visit-core.c +++ b/qapi/qapi-visit-core.c @@ -351,13 +351,11 @@ static void output_type_enum(Visitor *v, const char *= name, int *obj, static void input_type_enum(Visitor *v, const char *name, int *obj, const char *const strings[], Error **errp) { - Error *local_err =3D NULL; int64_t value =3D 0; char *enum_str; =20 - visit_type_str(v, name, &enum_str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &enum_str, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/backends/hostmem.c b/backends/hostmem.c index 4606b73849..8fcc5d68c9 100644 --- a/backends/hostmem.c +++ b/backends/hostmem.c @@ -197,7 +197,6 @@ static bool host_memory_backend_get_prealloc(Object *ob= j, Error **errp) static void host_memory_backend_set_prealloc(Object *obj, bool value, Error **errp) { - Error *local_err =3D NULL; HostMemoryBackend *backend =3D MEMORY_BACKEND(obj); =20 if (backend->force_prealloc) { @@ -218,9 +217,8 @@ static void host_memory_backend_set_prealloc(Object *ob= j, bool value, void *ptr =3D memory_region_get_ram_ptr(&backend->mr); uint64_t sz =3D memory_region_size(&backend->mr); =20 - os_mem_prealloc(fd, ptr, sz, smp_cpus, &local_err); - if (local_err) { - error_propagate(errp, local_err); + os_mem_prealloc(fd, ptr, sz, smp_cpus, errp); + if (ERR_IS_SET(errp)) { return; } backend->prealloc =3D true; diff --git a/backends/rng.c b/backends/rng.c index 59b7503efb..c5f4f01642 100644 --- a/backends/rng.c +++ b/backends/rng.c @@ -54,7 +54,6 @@ static void rng_backend_prop_set_opened(Object *obj, bool= value, Error **errp) { RngBackend *s =3D RNG_BACKEND(obj); RngBackendClass *k =3D RNG_BACKEND_GET_CLASS(s); - Error *local_err =3D NULL; =20 if (value =3D=3D s->opened) { return; @@ -66,9 +65,8 @@ static void rng_backend_prop_set_opened(Object *obj, bool= value, Error **errp) } =20 if (k->opened) { - k->opened(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + k->opened(s, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/backends/tpm.c b/backends/tpm.c index ef3e20a3cb..5b9788faf4 100644 --- a/backends/tpm.c +++ b/backends/tpm.c @@ -128,7 +128,6 @@ static void tpm_backend_prop_set_opened(Object *obj, bo= ol value, Error **errp) { TPMBackend *s =3D TPM_BACKEND(obj); TPMBackendClass *k =3D TPM_BACKEND_GET_CLASS(s); - Error *local_err =3D NULL; =20 if (value =3D=3D s->opened) { return; @@ -140,9 +139,8 @@ static void tpm_backend_prop_set_opened(Object *obj, bo= ol value, Error **errp) } =20 if (k->opened) { - k->opened(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + k->opened(s, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/block.c b/block.c index b08d95a62a..1a6776447a 100644 --- a/block.c +++ b/block.c @@ -1440,7 +1440,6 @@ static int bdrv_fill_options(QDict **options, const c= har *filename, bool protocol =3D *flags & BDRV_O_PROTOCOL; bool parse_filename =3D false; BlockDriver *drv =3D NULL; - Error *local_err =3D NULL; =20 /* * Caution: while qdict_get_try_str() is fine, getting non-string @@ -1505,9 +1504,8 @@ static int bdrv_fill_options(QDict **options, const c= har *filename, =20 /* Driver-specific filename parsing */ if (drv && drv->bdrv_parse_filename && parse_filename) { - drv->bdrv_parse_filename(filename, *options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + drv->bdrv_parse_filename(filename, *options, errp); + if (ERR_IS_SET(errp)) { return -EINVAL; } =20 @@ -2119,7 +2117,6 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDic= t *parent_options, BlockDriverState *backing_hd; QDict *options; QDict *tmp_parent_options =3D NULL; - Error *local_err =3D NULL; =20 if (bs->backing !=3D NULL) { goto free_exit; @@ -2152,10 +2149,9 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDi= ct *parent_options, goto free_exit; } else { bdrv_get_full_backing_filename(bs, backing_filename, PATH_MAX, - &local_err); - if (local_err) { + errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; - error_propagate(errp, local_err); QDECREF(options); goto free_exit; } @@ -2184,10 +2180,9 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDi= ct *parent_options, =20 /* Hook up the backing file link; drop our reference, bs owns the * backing_hd reference now */ - bdrv_set_backing_hd(bs, backing_hd, &local_err); + bdrv_set_backing_hd(bs, backing_hd, errp); bdrv_unref(backing_hd); - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto free_exit; } @@ -2292,7 +2287,6 @@ static BlockDriverState *bdrv_append_temp_snapshot(Bl= ockDriverState *bs, int64_t total_size; QemuOpts *opts =3D NULL; BlockDriverState *bs_snapshot =3D NULL; - Error *local_err =3D NULL; int ret; =20 /* if snapshot, we create a temporary backing file and open it @@ -2339,9 +2333,8 @@ static BlockDriverState *bdrv_append_temp_snapshot(Bl= ockDriverState *bs, * order to be able to return one, we have to increase * bs_snapshot's refcount here */ bdrv_ref(bs_snapshot); - bdrv_append(bs_snapshot, bs, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_append(bs_snapshot, bs, errp); + if (ERR_IS_SET(errp)) { bs_snapshot =3D NULL; goto out; } @@ -3196,17 +3189,13 @@ out: void bdrv_append(BlockDriverState *bs_new, BlockDriverState *bs_top, Error **errp) { - Error *local_err =3D NULL; - - bdrv_set_backing_hd(bs_new, bs_top, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_set_backing_hd(bs_new, bs_top, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 - bdrv_replace_node(bs_top, bs_new, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_replace_node(bs_top, bs_new, errp); + if (ERR_IS_SET(errp)) { bdrv_set_backing_hd(bs_new, NULL, &error_abort); goto out; } @@ -4074,17 +4063,15 @@ void bdrv_invalidate_cache(BlockDriverState *bs, Er= ror **errp) void bdrv_invalidate_cache_all(Error **errp) { BlockDriverState *bs; - Error *local_err =3D NULL; BdrvNextIterator it; =20 for (bs =3D bdrv_first(&it); bs; bs =3D bdrv_next(&it)) { AioContext *aio_context =3D bdrv_get_aio_context(bs); =20 aio_context_acquire(aio_context); - bdrv_invalidate_cache(bs, &local_err); + bdrv_invalidate_cache(bs, errp); aio_context_release(aio_context); - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } } diff --git a/block/blkdebug.c b/block/blkdebug.c index a5196e889d..57cd23d94a 100644 --- a/block/blkdebug.c +++ b/block/blkdebug.c @@ -246,7 +246,6 @@ static int read_config(BDRVBlkdebugState *s, const char= *filename, FILE *f =3D NULL; int ret; struct add_rule_data d; - Error *local_err =3D NULL; =20 if (filename) { f =3D fopen(filename, "r"); @@ -263,26 +262,23 @@ static int read_config(BDRVBlkdebugState *s, const ch= ar *filename, } } =20 - qemu_config_parse_qdict(options, config_groups, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_config_parse_qdict(options, config_groups, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto fail; } =20 d.s =3D s; d.action =3D ACTION_INJECT_ERROR; - qemu_opts_foreach(&inject_error_opts, add_rule, &d, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_foreach(&inject_error_opts, add_rule, &d, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto fail; } =20 d.action =3D ACTION_SET_STATE; - qemu_opts_foreach(&set_state_opts, add_rule, &d, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_foreach(&set_state_opts, add_rule, &d, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto fail; } diff --git a/block/block-backend.c b/block/block-backend.c index 9b9ca2eb35..0725cd84a4 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -141,7 +141,6 @@ static const char *blk_root_get_name(BdrvChild *child) static void blk_root_activate(BdrvChild *child, Error **errp) { BlockBackend *blk =3D child->opaque; - Error *local_err =3D NULL; =20 if (!blk->disable_perm) { return; @@ -149,9 +148,8 @@ static void blk_root_activate(BdrvChild *child, Error *= *errp) =20 blk->disable_perm =3D false; =20 - blk_set_perm(blk, blk->perm, blk->shared_perm, &local_err); - if (local_err) { - error_propagate(errp, local_err); + blk_set_perm(blk, blk->perm, blk->shared_perm, errp); + if (ERR_IS_SET(errp)) { blk->disable_perm =3D true; return; } diff --git a/block/commit.c b/block/commit.c index 264495177e..08ab3ce7de 100644 --- a/block/commit.c +++ b/block/commit.c @@ -293,7 +293,6 @@ void commit_start(const char *job_id, BlockDriverState = *bs, BlockDriverState *iter; BlockDriverState *overlay_bs; BlockDriverState *commit_top_bs =3D NULL; - Error *local_err =3D NULL; int ret; =20 assert(top !=3D bs); @@ -328,9 +327,8 @@ void commit_start(const char *job_id, BlockDriverState = *bs, orig_overlay_flags | BDRV_O_RDWR); } if (reopen_queue) { - bdrv_reopen_multiple(bdrv_get_aio_context(bs), reopen_queue, &loca= l_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + bdrv_reopen_multiple(bdrv_get_aio_context(bs), reopen_queue, errp); + if (ERR_IS_SET(errp)) { goto fail; } } @@ -345,18 +343,16 @@ void commit_start(const char *job_id, BlockDriverStat= e *bs, commit_top_bs->total_sectors =3D top->total_sectors; bdrv_set_aio_context(commit_top_bs, bdrv_get_aio_context(top)); =20 - bdrv_set_backing_hd(commit_top_bs, top, &local_err); - if (local_err) { + bdrv_set_backing_hd(commit_top_bs, top, errp); + if (ERR_IS_SET(errp)) { bdrv_unref(commit_top_bs); commit_top_bs =3D NULL; - error_propagate(errp, local_err); goto fail; } - bdrv_set_backing_hd(overlay_bs, commit_top_bs, &local_err); - if (local_err) { + bdrv_set_backing_hd(overlay_bs, commit_top_bs, errp); + if (ERR_IS_SET(errp)) { bdrv_unref(commit_top_bs); commit_top_bs =3D NULL; - error_propagate(errp, local_err); goto fail; } =20 diff --git a/block/crypto.c b/block/crypto.c index 5c2687d271..d98ae60c48 100644 --- a/block/crypto.c +++ b/block/crypto.c @@ -295,7 +295,6 @@ static int block_crypto_open_generic(QCryptoBlockFormat= format, { BlockCrypto *crypto =3D bs->opaque; QemuOpts *opts =3D NULL; - Error *local_err =3D NULL; int ret =3D -EINVAL; QCryptoBlockOpenOptions *open_opts =3D NULL; unsigned int cflags =3D 0; @@ -307,9 +306,8 @@ static int block_crypto_open_generic(QCryptoBlockFormat= format, } =20 opts =3D qemu_opts_create(opts_spec, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { goto cleanup; } =20 diff --git a/block/curl.c b/block/curl.c index 2a244e2439..05ed2e82c6 100644 --- a/block/curl.c +++ b/block/curl.c @@ -679,7 +679,6 @@ static int curl_open(BlockDriverState *bs, QDict *optio= ns, int flags, BDRVCURLState *s =3D bs->opaque; CURLState *state =3D NULL; QemuOpts *opts; - Error *local_err =3D NULL; const char *file; const char *cookie; const char *cookie_secret; @@ -696,9 +695,8 @@ static int curl_open(BlockDriverState *bs, QDict *optio= ns, int flags, =20 qemu_mutex_init(&s->mutex); opts =3D qemu_opts_create(&runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { goto out_noclean; } =20 diff --git a/block/file-posix.c b/block/file-posix.c index 5e30164be3..ba49f0b528 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -756,7 +756,6 @@ static int raw_reopen_prepare(BDRVReopenState *state, BDRVRawState *s; BDRVRawReopenState *rs; int ret =3D 0; - Error *local_err =3D NULL; =20 assert(state !=3D NULL); assert(state->bs !=3D NULL); @@ -819,11 +818,10 @@ static int raw_reopen_prepare(BDRVReopenState *state, /* Fail already reopen_prepare() if we can't get a working O_DIRECT * alignment with the new fd. */ if (rs->fd !=3D -1) { - raw_probe_alignment(state->bs, rs->fd, &local_err); - if (local_err) { + raw_probe_alignment(state->bs, rs->fd, errp); + if (ERR_IS_SET(errp)) { qemu_close(rs->fd); rs->fd =3D -1; - error_propagate(errp, local_err); ret =3D -EINVAL; } } diff --git a/block/gluster.c b/block/gluster.c index 6179195620..30ac978a89 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -765,13 +765,11 @@ static int qemu_gluster_open(BlockDriverState *bs, Q= Dict *options, int ret =3D 0; BlockdevOptionsGluster *gconf =3D NULL; QemuOpts *opts; - Error *local_err =3D NULL; const char *filename, *logfile; =20 opts =3D qemu_opts_create(&runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto out; } diff --git a/block/io.c b/block/io.c index ed31810c0a..cc3fd997a7 100644 --- a/block/io.c +++ b/block/io.c @@ -81,7 +81,6 @@ static void bdrv_merge_limits(BlockLimits *dst, const Blo= ckLimits *src) void bdrv_refresh_limits(BlockDriverState *bs, Error **errp) { BlockDriver *drv =3D bs->drv; - Error *local_err =3D NULL; =20 memset(&bs->bl, 0, sizeof(bs->bl)); =20 @@ -94,9 +93,8 @@ void bdrv_refresh_limits(BlockDriverState *bs, Error **er= rp) =20 /* Take some limits from the children as a default */ if (bs->file) { - bdrv_refresh_limits(bs->file->bs, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_refresh_limits(bs->file->bs, errp); + if (ERR_IS_SET(errp)) { return; } bdrv_merge_limits(&bs->bl, &bs->file->bs->bl); @@ -109,9 +107,8 @@ void bdrv_refresh_limits(BlockDriverState *bs, Error **= errp) } =20 if (bs->backing) { - bdrv_refresh_limits(bs->backing->bs, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_refresh_limits(bs->backing->bs, errp); + if (ERR_IS_SET(errp)) { return; } bdrv_merge_limits(&bs->bl, &bs->backing->bs->bl); diff --git a/block/iscsi.c b/block/iscsi.c index 0116fe97ce..6b3939585c 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -1747,7 +1747,6 @@ static int iscsi_open(BlockDriverState *bs, QDict *op= tions, int flags, struct scsi_inquiry_supported_pages *inq_vpd; char *initiator_name =3D NULL; QemuOpts *opts; - Error *local_err =3D NULL; const char *transport_name, *portal, *target; #if LIBISCSI_API_VERSION >=3D (20160603) enum iscsi_transport_type transport; @@ -1755,9 +1754,8 @@ static int iscsi_open(BlockDriverState *bs, QDict *op= tions, int flags, int i, ret =3D 0, timeout =3D 0, lun; =20 opts =3D qemu_opts_create(&runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto out; } @@ -1811,9 +1809,8 @@ static int iscsi_open(BlockDriverState *bs, QDict *op= tions, int flags, } =20 /* check if we got CHAP username/password via the options */ - apply_chap(iscsi, opts, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + apply_chap(iscsi, opts, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto out; } @@ -1825,9 +1822,8 @@ static int iscsi_open(BlockDriverState *bs, QDict *op= tions, int flags, } =20 /* check if we got HEADER_DIGEST via the options */ - apply_header_digest(iscsi, opts, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + apply_header_digest(iscsi, opts, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto out; } @@ -1878,9 +1874,8 @@ static int iscsi_open(BlockDriverState *bs, QDict *op= tions, int flags, goto out; } =20 - iscsi_readcapacity_sync(iscsilun, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + iscsi_readcapacity_sync(iscsilun, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto out; } @@ -2063,16 +2058,14 @@ static void iscsi_reopen_commit(BDRVReopenState *re= open_state) static int iscsi_truncate(BlockDriverState *bs, int64_t offset, Error **er= rp) { IscsiLun *iscsilun =3D bs->opaque; - Error *local_err =3D NULL; =20 if (iscsilun->type !=3D TYPE_DISK) { error_setg(errp, "Cannot resize non-disk iSCSI devices"); return -ENOTSUP; } =20 - iscsi_readcapacity_sync(iscsilun, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + iscsi_readcapacity_sync(iscsilun, errp); + if (ERR_IS_SET(errp)) { return -EIO; } =20 diff --git a/block/mirror.c b/block/mirror.c index 2d5d7dbbc2..addafec0ee 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -1127,7 +1127,6 @@ static void mirror_start_job(const char *job_id, Bloc= kDriverState *bs, BlockDriverState *mirror_top_bs; bool target_graph_mod; bool target_is_backing; - Error *local_err =3D NULL; int ret; =20 if (granularity =3D=3D 0) { @@ -1160,12 +1159,11 @@ static void mirror_start_job(const char *job_id, Bl= ockDriverState *bs, * it alive until block_job_create() succeeds even if bs has no parent= . */ bdrv_ref(mirror_top_bs); bdrv_drained_begin(bs); - bdrv_append(mirror_top_bs, bs, &local_err); + bdrv_append(mirror_top_bs, bs, errp); bdrv_drained_end(bs); =20 - if (local_err) { + if (ERR_IS_SET(errp)) { bdrv_unref(mirror_top_bs); - error_propagate(errp, local_err); return; } =20 @@ -1299,7 +1297,6 @@ void commit_active_start(const char *job_id, BlockDri= verState *bs, bool auto_complete, Error **errp) { int orig_base_flags; - Error *local_err =3D NULL; =20 orig_base_flags =3D bdrv_get_flags(base); =20 @@ -1311,9 +1308,8 @@ void commit_active_start(const char *job_id, BlockDri= verState *bs, MIRROR_LEAVE_BACKING_CHAIN, on_error, on_error, true, cb, opaque, &commit_active_job_driver, false, base, auto_complete, - filter_node_name, &local_err); - if (local_err) { - error_propagate(errp, local_err); + filter_node_name, errp); + if (ERR_IS_SET(errp)) { goto error_restore_flags; } =20 diff --git a/block/nbd.c b/block/nbd.c index 975faab2c5..6644c0e75f 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -265,7 +265,6 @@ static SocketAddress *nbd_config(BDRVNBDState *s, QDict= *options, QDict *addr =3D NULL; QObject *crumpled_addr =3D NULL; Visitor *iv =3D NULL; - Error *local_err =3D NULL; =20 qdict_extract_subqdict(options, &addr, "server."); if (!qdict_size(addr)) { @@ -287,9 +286,8 @@ static SocketAddress *nbd_config(BDRVNBDState *s, QDict= *options, * visitor expects the former. */ iv =3D qobject_input_visitor_new(crumpled_addr); - visit_type_SocketAddress(iv, NULL, &saddr, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_SocketAddress(iv, NULL, &saddr, errp); + if (ERR_IS_SET(errp)) { goto done; } =20 @@ -310,17 +308,15 @@ static QIOChannelSocket *nbd_establish_connection(Soc= ketAddress *saddr, Error **errp) { QIOChannelSocket *sioc; - Error *local_err =3D NULL; =20 sioc =3D qio_channel_socket_new(); qio_channel_set_name(QIO_CHANNEL(sioc), "nbd-client"); =20 qio_channel_socket_connect_sync(sioc, saddr, - &local_err); - if (local_err) { + errp); + if (ERR_IS_SET(errp)) { object_unref(OBJECT(sioc)); - error_propagate(errp, local_err); return NULL; } =20 @@ -397,16 +393,14 @@ static int nbd_open(BlockDriverState *bs, QDict *opti= ons, int flags, { BDRVNBDState *s =3D bs->opaque; QemuOpts *opts =3D NULL; - Error *local_err =3D NULL; QIOChannelSocket *sioc =3D NULL; QCryptoTLSCreds *tlscreds =3D NULL; const char *hostname =3D NULL; int ret =3D -EINVAL; =20 opts =3D qemu_opts_create(&nbd_runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { goto error; } =20 diff --git a/block/nfs.c b/block/nfs.c index 848b2c0bb0..7792b3ad01 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -455,7 +455,6 @@ static NFSServer *nfs_config(QDict *options, Error **er= rp) QDict *addr =3D NULL; QObject *crumpled_addr =3D NULL; Visitor *iv =3D NULL; - Error *local_error =3D NULL; =20 qdict_extract_subqdict(options, &addr, "server."); if (!qdict_size(addr)) { @@ -476,9 +475,8 @@ static NFSServer *nfs_config(QDict *options, Error **er= rp) * they come from -drive, they're all QString. */ iv =3D qobject_input_visitor_new(crumpled_addr); - visit_type_NFSServer(iv, NULL, &server, &local_error); - if (local_error) { - error_propagate(errp, local_error); + visit_type_NFSServer(iv, NULL, &server, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -495,14 +493,12 @@ static int64_t nfs_client_open(NFSClient *client, QDi= ct *options, { int ret =3D -EINVAL; QemuOpts *opts =3D NULL; - Error *local_err =3D NULL; struct stat st; char *file =3D NULL, *strp =3D NULL; =20 opts =3D qemu_opts_create(&runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto fail; } diff --git a/block/qapi.c b/block/qapi.c index a40922ea26..423934f0bf 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -460,13 +460,11 @@ BlockInfoList *qmp_query_block(Error **errp) { BlockInfoList *head =3D NULL, **p_next =3D &head; BlockBackend *blk; - Error *local_err =3D NULL; =20 for (blk =3D blk_next(NULL); blk; blk =3D blk_next(blk)) { BlockInfoList *info =3D g_malloc0(sizeof(*info)); - bdrv_query_info(blk, &info->value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_query_info(blk, &info->value, errp); + if (ERR_IS_SET(errp)) { g_free(info); qapi_free_BlockInfoList(head); return NULL; diff --git a/block/qcow2.c b/block/qcow2.c index 53920a83b5..5e7e5bf292 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -598,22 +598,19 @@ static int qcow2_update_options_prepare(BlockDriverSt= ate *bs, int overlap_check_template =3D 0; uint64_t l2_cache_size, refcount_cache_size; int i; - Error *local_err =3D NULL; int ret; =20 opts =3D qemu_opts_create(&qcow2_runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto fail; } =20 /* get L2 table/refcount block cache size from command line options */ read_cache_sizes(bs, opts, &l2_cache_size, &refcount_cache_size, - &local_err); - if (local_err) { - error_propagate(errp, local_err); + errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto fail; } diff --git a/block/raw-format.c b/block/raw-format.c index 36e65036f0..5134373fbf 100644 --- a/block/raw-format.c +++ b/block/raw-format.c @@ -71,7 +71,6 @@ static QemuOptsList raw_create_opts =3D { static int raw_read_options(QDict *options, BlockDriverState *bs, BDRVRawState *s, Error **errp) { - Error *local_err =3D NULL; QemuOpts *opts =3D NULL; int64_t real_size =3D 0; int ret; @@ -83,9 +82,8 @@ static int raw_read_options(QDict *options, BlockDriverSt= ate *bs, } =20 opts =3D qemu_opts_create(&raw_runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto end; } diff --git a/block/rbd.c b/block/rbd.c index e551639e47..25149e776b 100644 --- a/block/rbd.c +++ b/block/rbd.c @@ -346,7 +346,6 @@ static QemuOptsList runtime_opts =3D { =20 static int qemu_rbd_create(const char *filename, QemuOpts *opts, Error **e= rrp) { - Error *local_err =3D NULL; int64_t bytes =3D 0; int64_t objsize; int obj_order =3D 0; @@ -378,10 +377,9 @@ static int qemu_rbd_create(const char *filename, QemuO= pts *opts, Error **errp) } =20 options =3D qdict_new(); - qemu_rbd_parse_filename(filename, options, &local_err); - if (local_err) { + qemu_rbd_parse_filename(filename, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; - error_propagate(errp, local_err); goto exit; } =20 diff --git a/block/replication.c b/block/replication.c index c4ac17201a..c7ea016af9 100644 --- a/block/replication.c +++ b/block/replication.c @@ -313,7 +313,6 @@ static bool replication_recurse_is_first_non_filter(Blo= ckDriverState *bs, =20 static void secondary_do_checkpoint(BDRVReplicationState *s, Error **errp) { - Error *local_err =3D NULL; int ret; =20 if (!s->secondary_disk->bs->job) { @@ -321,9 +320,8 @@ static void secondary_do_checkpoint(BDRVReplicationStat= e *s, Error **errp) return; } =20 - backup_do_checkpoint(s->secondary_disk->bs->job, &local_err); - if (local_err) { - error_propagate(errp, local_err); + backup_do_checkpoint(s->secondary_disk->bs->job, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -347,7 +345,6 @@ static void reopen_backing_file(BlockDriverState *bs, b= ool writable, BlockReopenQueue *reopen_queue =3D NULL; int orig_hidden_flags, orig_secondary_flags; int new_hidden_flags, new_secondary_flags; - Error *local_err =3D NULL; =20 if (writable) { orig_hidden_flags =3D s->orig_hidden_flags =3D @@ -379,8 +376,7 @@ static void reopen_backing_file(BlockDriverState *bs, b= ool writable, =20 if (reopen_queue) { bdrv_reopen_multiple(bdrv_get_aio_context(bs), - reopen_queue, &local_err); - error_propagate(errp, local_err); + reopen_queue, errp); } } =20 diff --git a/block/sheepdog.c b/block/sheepdog.c index dd75571435..6160fa6717 100644 --- a/block/sheepdog.c +++ b/block/sheepdog.c @@ -553,7 +553,6 @@ static SocketAddress *sd_server_config(QDict *options, = Error **errp) QObject *crumpled_server =3D NULL; Visitor *iv =3D NULL; SocketAddress *saddr =3D NULL; - Error *local_err =3D NULL; =20 qdict_extract_subqdict(options, &server, "server."); =20 @@ -571,9 +570,8 @@ static SocketAddress *sd_server_config(QDict *options, = Error **errp) * visitor expects the former. */ iv =3D qobject_input_visitor_new(crumpled_server); - visit_type_SocketAddress(iv, NULL, &saddr, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_SocketAddress(iv, NULL, &saddr, errp); + if (ERR_IS_SET(errp)) { goto done; } =20 @@ -1197,17 +1195,15 @@ static void parse_vdiname(SheepdogConfig *cfg, cons= t char *filename, static void sd_parse_filename(const char *filename, QDict *options, Error **errp) { - Error *err =3D NULL; SheepdogConfig cfg; char buf[32]; =20 if (strstr(filename, "://")) { - sd_parse_uri(&cfg, filename, &err); + sd_parse_uri(&cfg, filename, errp); } else { - parse_vdiname(&cfg, filename, &err); + parse_vdiname(&cfg, filename, errp); } - if (err) { - error_propagate(errp, err); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1572,15 +1568,13 @@ static int sd_open(BlockDriverState *bs, QDict *opt= ions, int flags, uint64_t snap_id; char *buf =3D NULL; QemuOpts *opts; - Error *local_err =3D NULL; =20 s->bs =3D bs; s->aio_context =3D bdrv_get_aio_context(bs); =20 opts =3D qemu_opts_create(&runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; goto err_no_fd; } @@ -1955,7 +1949,6 @@ static int parse_block_size_shift(BDRVSheepdogState *= s, QemuOpts *opt) static int sd_create(const char *filename, QemuOpts *opts, Error **errp) { - Error *err =3D NULL; int ret =3D 0; uint32_t vid =3D 0; char *backing_file =3D NULL; @@ -1968,12 +1961,11 @@ static int sd_create(const char *filename, QemuOpts= *opts, s =3D g_new0(BDRVSheepdogState, 1); =20 if (strstr(filename, "://")) { - sd_parse_uri(&cfg, filename, &err); + sd_parse_uri(&cfg, filename, errp); } else { - parse_vdiname(&cfg, filename, &err); + parse_vdiname(&cfg, filename, errp); } - if (err) { - error_propagate(errp, err); + if (ERR_IS_SET(errp)) { goto out; } =20 diff --git a/block/ssh.c b/block/ssh.c index 11203fc5a2..008e256ad1 100644 --- a/block/ssh.c +++ b/block/ssh.c @@ -586,7 +586,6 @@ static InetSocketAddress *ssh_config(QDict *options, Er= ror **errp) QDict *addr =3D NULL; QObject *crumpled_addr =3D NULL; Visitor *iv =3D NULL; - Error *local_error =3D NULL; =20 qdict_extract_subqdict(options, &addr, "server."); if (!qdict_size(addr)) { @@ -608,9 +607,8 @@ static InetSocketAddress *ssh_config(QDict *options, Er= ror **errp) * visitor expects the former. */ iv =3D qobject_input_visitor_new(crumpled_addr); - visit_type_InetSocketAddress(iv, NULL, &inet, &local_error); - if (local_error) { - error_propagate(errp, local_error); + visit_type_InetSocketAddress(iv, NULL, &inet, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -626,15 +624,13 @@ static int connect_to_ssh(BDRVSSHState *s, QDict *opt= ions, { int r, ret; QemuOpts *opts =3D NULL; - Error *local_err =3D NULL; const char *user, *path, *host_key_check; long port =3D 0; =20 opts =3D qemu_opts_create(&ssh_runtime_opts, NULL, 0, &error_abort); - qemu_opts_absorb_qdict(opts, options, &local_err); - if (local_err) { + qemu_opts_absorb_qdict(opts, options, errp); + if (ERR_IS_SET(errp)) { ret =3D -EINVAL; - error_propagate(errp, local_err); goto err; } =20 diff --git a/blockdev.c b/blockdev.c index fdbf33aa3d..3ce592d4af 100644 --- a/blockdev.c +++ b/blockdev.c @@ -1620,7 +1620,6 @@ static void external_snapshot_prepare(BlkActionState = *common, { int flags =3D 0; QDict *options =3D NULL; - Error *local_err =3D NULL; /* Device and node name of the image to generate the snapshot from */ const char *device; const char *node_name; @@ -1726,9 +1725,8 @@ static void external_snapshot_prepare(BlkActionState = *common, bdrv_img_create(new_image_file, format, state->old_bs->filename, state->old_bs->drv->format_name, - NULL, size, flags, false, &local_err); - if (local_err) { - error_propagate(errp, local_err); + NULL, size, flags, false, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -1775,9 +1773,8 @@ static void external_snapshot_prepare(BlkActionState = *common, * can fail, so we need to do it in .prepare; undoing it for abort is * always possible. */ bdrv_ref(state->new_bs); - bdrv_append(state->new_bs, state->old_bs, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_append(state->new_bs, state->old_bs, errp); + if (ERR_IS_SET(errp)) { return; } state->overlay_appended =3D true; @@ -2166,7 +2163,6 @@ void qmp_transaction(TransactionActionList *dev_list, TransactionActionList *dev_entry =3D dev_list; BlockJobTxn *block_job_txn =3D NULL; BlkActionState *state, *next; - Error *local_err =3D NULL; =20 QSIMPLEQ_HEAD(snap_bdrv_states, BlkActionState) snap_bdrv_states; QSIMPLEQ_INIT(&snap_bdrv_states); @@ -2202,9 +2198,8 @@ void qmp_transaction(TransactionActionList *dev_list, state->txn_props =3D props; QSIMPLEQ_INSERT_TAIL(&snap_bdrv_states, state, entry); =20 - state->ops->prepare(state, &local_err); - if (local_err) { - error_propagate(errp, local_err); + state->ops->prepare(state, errp); + if (ERR_IS_SET(errp)) { goto delete_and_fail; } } @@ -2366,7 +2361,6 @@ void qmp_blockdev_close_tray(bool has_device, const c= har *device, Error **errp) { BlockBackend *blk; - Error *local_err =3D NULL; =20 device =3D has_device ? device : NULL; id =3D has_id ? id : NULL; @@ -2390,9 +2384,8 @@ void qmp_blockdev_close_tray(bool has_device, const c= har *device, return; } =20 - blk_dev_change_media_cb(blk, true, &local_err); - if (local_err) { - error_propagate(errp, local_err); + blk_dev_change_media_cb(blk, true, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -2457,7 +2450,6 @@ out: static void qmp_blockdev_insert_anon_medium(BlockBackend *blk, BlockDriverState *bs, Error **= errp) { - Error *local_err =3D NULL; bool has_device; int ret; =20 @@ -2490,9 +2482,8 @@ static void qmp_blockdev_insert_anon_medium(BlockBack= end *blk, * slot here. * Do it after blk_insert_bs() so blk_is_inserted(blk) returns the= @load * value passed here (i.e. true). */ - blk_dev_change_media_cb(blk, true, &local_err); - if (local_err) { - error_propagate(errp, local_err); + blk_dev_change_media_cb(blk, true, errp); + if (ERR_IS_SET(errp)) { blk_remove_bs(blk); return; } @@ -2947,7 +2938,6 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, BlockDriverState *bs, *iter; BlockDriverState *base_bs =3D NULL; AioContext *aio_context; - Error *local_err =3D NULL; const char *base_name =3D NULL; =20 if (!has_on_error) { @@ -3011,9 +3001,8 @@ void qmp_block_stream(bool has_job_id, const char *jo= b_id, const char *device, base_name =3D has_backing_file ? backing_file : base_name; =20 stream_start(has_job_id ? job_id : NULL, bs, base_bs, base_name, - has_speed ? speed : 0, on_error, &local_err); - if (local_err) { - error_propagate(errp, local_err); + has_speed ? speed : 0, on_error, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -3600,7 +3589,6 @@ void qmp_blockdev_mirror(bool has_job_id, const char = *job_id, BlockDriverState *target_bs; AioContext *aio_context; BlockMirrorBackingMode backing_mode =3D MIRROR_LEAVE_BACKING_CHAIN; - Error *local_err =3D NULL; =20 bs =3D qmp_get_root_bs(device, errp); if (!bs) { @@ -3626,8 +3614,7 @@ void qmp_blockdev_mirror(bool has_job_id, const char = *job_id, has_on_target_error, on_target_error, true, true, has_filter_node_name, filter_node_name, - &local_err); - error_propagate(errp, local_err); + errp); =20 aio_context_release(aio_context); } @@ -3856,11 +3843,9 @@ void qmp_blockdev_add(BlockdevOptions *options, Erro= r **errp) QObject *obj; Visitor *v =3D qobject_output_visitor_new(&obj); QDict *qdict; - Error *local_err =3D NULL; =20 - visit_type_BlockdevOptions(v, NULL, &options, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_BlockdevOptions(v, NULL, &options, errp); + if (ERR_IS_SET(errp)) { goto fail; } =20 diff --git a/blockjob.c b/blockjob.c index 69ad28dd65..c0b528f1e9 100644 --- a/blockjob.c +++ b/blockjob.c @@ -356,7 +356,6 @@ static int block_job_finish_sync(BlockJob *job, void (*finish)(BlockJob *, Error **errp), Error **errp) { - Error *local_err =3D NULL; int ret; =20 assert(blk_bs(job->blk)->job =3D=3D job); @@ -364,10 +363,9 @@ static int block_job_finish_sync(BlockJob *job, block_job_ref(job); =20 if (finish) { - finish(job, &local_err); + finish(job, errp); } - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { block_job_unref(job); return -EBUSY; } @@ -454,15 +452,12 @@ static void block_job_completed_txn_success(BlockJob = *job) =20 void block_job_set_speed(BlockJob *job, int64_t speed, Error **errp) { - Error *local_err =3D NULL; - if (!job->driver->set_speed) { error_setg(errp, QERR_UNSUPPORTED); return; } - job->driver->set_speed(job, speed, &local_err); - if (local_err) { - error_propagate(errp, local_err); + job->driver->set_speed(job, speed, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/bootdevice.c b/bootdevice.c index 29ebbb1c48..92f607d321 100644 --- a/bootdevice.c +++ b/bootdevice.c @@ -52,17 +52,14 @@ void qemu_register_boot_set(QEMUBootSetHandler *func, v= oid *opaque) =20 void qemu_boot_set(const char *boot_order, Error **errp) { - Error *local_err =3D NULL; - if (!boot_set_handler) { error_setg(errp, "no function defined to set boot device list for" " this architecture"); return; } =20 - validate_bootdevices(boot_order, &local_err); - if (local_err) { - error_propagate(errp, local_err); + validate_bootdevices(boot_order, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -319,7 +316,6 @@ void device_add_bootindex_property(Object *obj, int32_t= *bootindex, const char *name, const char *suffix, DeviceState *dev, Error **errp) { - Error *local_err =3D NULL; BootIndexProperty *prop =3D g_malloc0(sizeof(*prop)); =20 prop->bootindex =3D bootindex; @@ -330,10 +326,9 @@ void device_add_bootindex_property(Object *obj, int32_= t *bootindex, device_get_bootindex, device_set_bootindex, property_release_bootindex, - prop, &local_err); + prop, errp); =20 - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { g_free(prop); return; } diff --git a/chardev/char.c b/chardev/char.c index 7aa0210765..ac3cd2b436 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -559,7 +559,6 @@ help_string_append(const char *name, void *opaque) Chardev *qemu_chr_new_from_opts(QemuOpts *opts, Error **errp) { - Error *local_err =3D NULL; const ChardevClass *cc; Chardev *chr; int i; @@ -610,9 +609,8 @@ Chardev *qemu_chr_new_from_opts(QemuOpts *opts, =20 chr =3D NULL; if (cc->parse) { - cc->parse(opts, backend, &local_err); - if (local_err) { - error_propagate(errp, local_err); + cc->parse(opts, backend, errp); + if (ERR_IS_SET(errp)) { goto out; } } else { diff --git a/dump.c b/dump.c index dc78c98b23..3fa8ba3571 100644 --- a/dump.c +++ b/dump.c @@ -348,22 +348,19 @@ static void write_memory(DumpState *s, GuestPhysBlock= *block, ram_addr_t start, int64_t size, Error **errp) { int64_t i; - Error *local_err =3D NULL; =20 for (i =3D 0; i < size / s->dump_info.page_size; i++) { write_data(s, block->host_addr + start + i * s->dump_info.page_siz= e, - s->dump_info.page_size, &local_err); - if (local_err) { - error_propagate(errp, local_err); + s->dump_info.page_size, errp); + if (ERR_IS_SET(errp)) { return; } } =20 if ((size % s->dump_info.page_size) !=3D 0) { write_data(s, block->host_addr + start + i * s->dump_info.page_siz= e, - size % s->dump_info.page_size, &local_err); - if (local_err) { - error_propagate(errp, local_err); + size % s->dump_info.page_size, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -437,7 +434,6 @@ static void write_elf_loads(DumpState *s, Error **errp) MemoryMapping *memory_mapping; uint32_t phdr_index =3D 1; uint32_t max_index; - Error *local_err =3D NULL; =20 if (s->have_section) { max_index =3D s->sh_info; @@ -451,14 +447,13 @@ static void write_elf_loads(DumpState *s, Error **err= p) s, &offset, &filesz); if (s->dump_info.d_class =3D=3D ELFCLASS64) { write_elf64_load(s, memory_mapping, phdr_index++, offset, - filesz, &local_err); + filesz, errp); } else { write_elf32_load(s, memory_mapping, phdr_index++, offset, - filesz, &local_err); + filesz, errp); } =20 - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } =20 @@ -471,101 +466,65 @@ static void write_elf_loads(DumpState *s, Error **er= rp) /* write elf header, PT_NOTE and elf note to vmcore. */ static void dump_begin(DumpState *s, Error **errp) { - Error *local_err =3D NULL; - - /* - * the vmcore's format is: - * -------------- - * | elf header | - * -------------- - * | PT_NOTE | - * -------------- - * | PT_LOAD | - * -------------- - * | ...... | - * -------------- - * | PT_LOAD | - * -------------- - * | sec_hdr | - * -------------- - * | elf note | - * -------------- - * | memory | - * -------------- - * - * we only know where the memory is saved after we write elf note into - * vmcore. - */ - - /* write elf header to vmcore */ if (s->dump_info.d_class =3D=3D ELFCLASS64) { - write_elf64_header(s, &local_err); + write_elf64_header(s, errp); } else { - write_elf32_header(s, &local_err); + write_elf32_header(s, errp); } - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } =20 if (s->dump_info.d_class =3D=3D ELFCLASS64) { /* write PT_NOTE to vmcore */ - write_elf64_note(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf64_note(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 /* write all PT_LOAD to vmcore */ - write_elf_loads(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_loads(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 /* write section to vmcore */ if (s->have_section) { - write_elf_section(s, 1, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_section(s, 1, errp); + if (ERR_IS_SET(errp)) { return; } } =20 /* write notes to vmcore */ - write_elf64_notes(fd_write_vmcore, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf64_notes(fd_write_vmcore, s, errp); + if (ERR_IS_SET(errp)) { return; } } else { /* write PT_NOTE to vmcore */ - write_elf32_note(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf32_note(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 /* write all PT_LOAD to vmcore */ - write_elf_loads(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_loads(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 /* write section to vmcore */ if (s->have_section) { - write_elf_section(s, 0, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf_section(s, 0, errp); + if (ERR_IS_SET(errp)) { return; } } =20 /* write notes to vmcore */ - write_elf32_notes(fd_write_vmcore, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf32_notes(fd_write_vmcore, s, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -603,7 +562,6 @@ static void dump_iterate(DumpState *s, Error **errp) { GuestPhysBlock *block; int64_t size; - Error *local_err =3D NULL; =20 do { block =3D s->next_block; @@ -615,9 +573,8 @@ static void dump_iterate(DumpState *s, Error **errp) size -=3D block->target_end - (s->begin + s->length); } } - write_memory(s, block, s->start, size, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_memory(s, block, s->start, size, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -626,11 +583,8 @@ static void dump_iterate(DumpState *s, Error **errp) =20 static void create_vmcore(DumpState *s, Error **errp) { - Error *local_err =3D NULL; - - dump_begin(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + dump_begin(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -725,7 +679,6 @@ static void create_header32(DumpState *s, Error **errp) uint32_t bitmap_blocks; uint32_t status =3D 0; uint64_t offset_note; - Error *local_err =3D NULL; =20 /* write common header, the version of kdump-compressed format is 6th = */ size =3D sizeof(DiskDumpHeader32); @@ -789,9 +742,8 @@ static void create_header32(DumpState *s, Error **errp) s->note_buf_offset =3D 0; =20 /* use s->note_buf to store notes temporarily */ - write_elf32_notes(buf_write_note, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf32_notes(buf_write_note, s, errp); + if (ERR_IS_SET(errp)) { goto out; } if (write_buffer(s->fd, offset_note, s->note_buf, @@ -825,7 +777,6 @@ static void create_header64(DumpState *s, Error **errp) uint32_t bitmap_blocks; uint32_t status =3D 0; uint64_t offset_note; - Error *local_err =3D NULL; =20 /* write common header, the version of kdump-compressed format is 6th = */ size =3D sizeof(DiskDumpHeader64); @@ -889,9 +840,8 @@ static void create_header64(DumpState *s, Error **errp) s->note_buf_offset =3D 0; =20 /* use s->note_buf to store notes temporarily */ - write_elf64_notes(buf_write_note, s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_elf64_notes(buf_write_note, s, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -917,14 +867,11 @@ out: =20 static void write_dump_header(DumpState *s, Error **errp) { - Error *local_err =3D NULL; - if (s->dump_info.d_class =3D=3D ELFCLASS32) { - create_header32(s, &local_err); + create_header32(s, errp); } else { - create_header64(s, &local_err); + create_header64(s, errp); } - error_propagate(errp, local_err); } =20 static size_t dump_bitmap_get_bufsize(DumpState *s) @@ -1359,7 +1306,6 @@ out: static void create_kdump_vmcore(DumpState *s, Error **errp) { int ret; - Error *local_err =3D NULL; =20 /* * the kdump-compressed format is: @@ -1389,21 +1335,18 @@ static void create_kdump_vmcore(DumpState *s, Error= **errp) return; } =20 - write_dump_header(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_dump_header(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 - write_dump_bitmap(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_dump_bitmap(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 - write_dump_pages(s, &local_err); - if (local_err) { - error_propagate(errp, local_err); + write_dump_pages(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1494,7 +1437,6 @@ static void dump_init(DumpState *s, int fd, bool has_= format, { CPUState *cpu; int nr_cpus; - Error *err =3D NULL; int ret; =20 s->has_format =3D has_format; @@ -1565,9 +1507,8 @@ static void dump_init(DumpState *s, int fd, bool has_= format, =20 /* get memory mapping */ if (paging) { - qemu_get_guest_memory_mapping(&s->list, &s->guest_phys_blocks, &er= r); - if (err !=3D NULL) { - error_propagate(errp, err); + qemu_get_guest_memory_mapping(&s->list, &s->guest_phys_blocks, err= p); + if (ERR_IS_SET(errp)) { goto cleanup; } } else { @@ -1723,7 +1664,6 @@ void qmp_dump_guest_memory(bool paging, const char *f= ile, const char *p; int fd =3D -1; DumpState *s; - Error *local_err =3D NULL; bool detach_p =3D false; =20 if (runstate_check(RUN_STATE_INMIGRATE)) { @@ -1801,9 +1741,8 @@ void qmp_dump_guest_memory(bool paging, const char *f= ile, dump_state_prepare(s); =20 dump_init(s, fd, has_format, format, paging, has_begin, - begin, length, &local_err); - if (local_err) { - error_propagate(errp, local_err); + begin, length, errp); + if (ERR_IS_SET(errp)) { atomic_set(&s->status, DUMP_STATUS_FAILED); return; } diff --git a/exec.c b/exec.c index 9d73a63f1c..35d9588350 100644 --- a/exec.c +++ b/exec.c @@ -1860,7 +1860,6 @@ static void ram_block_add(RAMBlock *new_block, Error = **errp) RAMBlock *block; RAMBlock *last_block =3D NULL; ram_addr_t old_ram_size, new_ram_size; - Error *err =3D NULL; =20 old_ram_size =3D last_ram_page(); =20 @@ -1870,9 +1869,8 @@ static void ram_block_add(RAMBlock *new_block, Error = **errp) if (!new_block->host) { if (xen_enabled()) { xen_ram_alloc(new_block->offset, new_block->max_length, - new_block->mr, &err); - if (err) { - error_propagate(errp, err); + new_block->mr, errp); + if (ERR_IS_SET(errp)) { qemu_mutex_unlock_ramlist(); return; } @@ -1938,7 +1936,6 @@ RAMBlock *qemu_ram_alloc_from_file(ram_addr_t size, M= emoryRegion *mr, Error **errp) { RAMBlock *new_block; - Error *local_err =3D NULL; =20 if (xen_enabled()) { error_setg(errp, "-mem-path not supported with Xen"); @@ -1969,10 +1966,9 @@ RAMBlock *qemu_ram_alloc_from_file(ram_addr_t size, = MemoryRegion *mr, return NULL; } =20 - ram_block_add(new_block, &local_err); - if (local_err) { + ram_block_add(new_block, errp); + if (ERR_IS_SET(errp)) { g_free(new_block); - error_propagate(errp, local_err); return NULL; } return new_block; @@ -1988,7 +1984,6 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ra= m_addr_t max_size, MemoryRegion *mr, Error **errp) { RAMBlock *new_block; - Error *local_err =3D NULL; =20 size =3D HOST_PAGE_ALIGN(size); max_size =3D HOST_PAGE_ALIGN(max_size); @@ -2007,10 +2002,9 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, r= am_addr_t max_size, if (resizeable) { new_block->flags |=3D RAM_RESIZEABLE; } - ram_block_add(new_block, &local_err); - if (local_err) { + ram_block_add(new_block, errp); + if (ERR_IS_SET(errp)) { g_free(new_block); - error_propagate(errp, local_err); return NULL; } return new_block; diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c index 651409094c..7d9c8691bb 100644 --- a/hw/arm/allwinner-a10.c +++ b/hw/arm/allwinner-a10.c @@ -54,19 +54,16 @@ static void aw_a10_realize(DeviceState *dev, Error **er= rp) SysBusDevice *sysbusdev; uint8_t i; qemu_irq fiq, irq; - Error *err =3D NULL; =20 - object_property_set_bool(OBJECT(&s->cpu), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->cpu), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } irq =3D qdev_get_gpio_in(DEVICE(&s->cpu), ARM_CPU_IRQ); fiq =3D qdev_get_gpio_in(DEVICE(&s->cpu), ARM_CPU_FIQ); =20 - object_property_set_bool(OBJECT(&s->intc), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->intc), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbusdev =3D SYS_BUS_DEVICE(&s->intc); @@ -77,9 +74,8 @@ static void aw_a10_realize(DeviceState *dev, Error **errp) s->irq[i] =3D qdev_get_gpio_in(DEVICE(&s->intc), i); } =20 - object_property_set_bool(OBJECT(&s->timer), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->timer), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbusdev =3D SYS_BUS_DEVICE(&s->timer); @@ -91,18 +87,16 @@ static void aw_a10_realize(DeviceState *dev, Error **er= rp) sysbus_connect_irq(sysbusdev, 4, s->irq[67]); sysbus_connect_irq(sysbusdev, 5, s->irq[68]); =20 - object_property_set_bool(OBJECT(&s->emac), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->emac), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbusdev =3D SYS_BUS_DEVICE(&s->emac); sysbus_mmio_map(sysbusdev, 0, AW_A10_EMAC_BASE); sysbus_connect_irq(sysbusdev, 0, s->irq[55]); =20 - object_property_set_bool(OBJECT(&s->sata), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->sata), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->sata), 0, AW_A10_SATA_BASE); diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c index c8a11f2b53..2fa8bbb249 100644 --- a/hw/arm/armv7m.c +++ b/hw/arm/armv7m.c @@ -161,7 +161,6 @@ static void armv7m_realize(DeviceState *dev, Error **er= rp) { ARMv7MState *s =3D ARMV7M(dev); SysBusDevice *sbd; - Error *err =3D NULL; int i; char **cpustr; ObjectClass *oc; @@ -186,10 +185,9 @@ static void armv7m_realize(DeviceState *dev, Error **e= rrp) =20 cc =3D CPU_CLASS(oc); typename =3D object_class_get_name(oc); - cc->parse_features(typename, cpustr[1], &err); + cc->parse_features(typename, cpustr[1], errp); g_strfreev(cpustr); - if (err) { - error_propagate(errp, err); + if (ERR_IS_SET(errp)) { return; } =20 @@ -201,16 +199,14 @@ static void armv7m_realize(DeviceState *dev, Error **= errp) =20 object_property_set_link(OBJECT(s->cpu), OBJECT(&s->container), "memor= y", &error_abort); - object_property_set_bool(OBJECT(s->cpu), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(s->cpu), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 /* Note that we must realize the NVIC after the CPU */ - object_property_set_bool(OBJECT(&s->nvic), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->nvic), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -234,16 +230,14 @@ static void armv7m_realize(DeviceState *dev, Error **= errp) Object *obj =3D OBJECT(&s->bitband[i]); SysBusDevice *sbd =3D SYS_BUS_DEVICE(&s->bitband[i]); =20 - object_property_set_int(obj, bitband_input_addr[i], "base", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_int(obj, bitband_input_addr[i], "base", errp); + if (ERR_IS_SET(errp)) { return; } object_property_set_link(obj, OBJECT(s->board_memory), "source-memory", &error_abort); - object_property_set_bool(obj, true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(obj, true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/arm/digic.c b/hw/arm/digic.c index f22fae73c3..eeaa8729ff 100644 --- a/hw/arm/digic.c +++ b/hw/arm/digic.c @@ -59,26 +59,22 @@ static void digic_init(Object *obj) static void digic_realize(DeviceState *dev, Error **errp) { DigicState *s =3D DIGIC(dev); - Error *err =3D NULL; SysBusDevice *sbd; int i; =20 - object_property_set_bool(OBJECT(&s->cpu), true, "reset-hivecs", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->cpu), true, "reset-hivecs", errp); + if (ERR_IS_SET(errp)) { return; } =20 - object_property_set_bool(OBJECT(&s->cpu), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->cpu), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 for (i =3D 0; i < DIGIC4_NB_TIMERS; i++) { - object_property_set_bool(OBJECT(&s->timer[i]), true, "realized", &= err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->timer[i]), true, "realized", e= rrp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -87,9 +83,8 @@ static void digic_realize(DeviceState *dev, Error **errp) } =20 qdev_prop_set_chr(DEVICE(&s->uart), "chardev", serial_hds[0]); - object_property_set_bool(OBJECT(&s->uart), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->uart), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c index 40666b68a3..c10f96d83c 100644 --- a/hw/arm/fsl-imx25.c +++ b/hw/arm/fsl-imx25.c @@ -78,17 +78,14 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) { FslIMX25State *s =3D FSL_IMX25(dev); uint8_t i; - Error *err =3D NULL; =20 - object_property_set_bool(OBJECT(&s->cpu), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->cpu), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 - object_property_set_bool(OBJECT(&s->avic), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->avic), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->avic), 0, FSL_IMX25_AVIC_ADDR); @@ -97,9 +94,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error **e= rrp) sysbus_connect_irq(SYS_BUS_DEVICE(&s->avic), 1, qdev_get_gpio_in(DEVICE(&s->cpu), ARM_CPU_FIQ)); =20 - object_property_set_bool(OBJECT(&s->ccm), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->ccm), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->ccm), 0, FSL_IMX25_CCM_ADDR); @@ -131,9 +127,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", chr); } =20 - object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->uart[i]), 0, serial_table[i].ad= dr); @@ -156,9 +151,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) =20 s->gpt[i].ccm =3D IMX_CCM(&s->ccm); =20 - object_property_set_bool(OBJECT(&s->gpt[i]), true, "realized", &er= r); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gpt[i]), true, "realized", err= p); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->gpt[i]), 0, gpt_table[i].addr); @@ -179,9 +173,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) =20 s->epit[i].ccm =3D IMX_CCM(&s->ccm); =20 - object_property_set_bool(OBJECT(&s->epit[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->epit[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->epit[i]), 0, epit_table[i].addr= ); @@ -192,9 +185,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) =20 qdev_set_nic_properties(DEVICE(&s->fec), &nd_table[0]); =20 - object_property_set_bool(OBJECT(&s->fec), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->fec), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->fec), 0, FSL_IMX25_FEC_ADDR); @@ -213,9 +205,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) { FSL_IMX25_I2C3_ADDR, FSL_IMX25_I2C3_IRQ } }; =20 - object_property_set_bool(OBJECT(&s->i2c[i]), true, "realized", &er= r); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->i2c[i]), true, "realized", err= p); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->i2c[i]), 0, i2c_table[i].addr); @@ -236,9 +227,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) { FSL_IMX25_GPIO4_ADDR, FSL_IMX25_GPIO4_IRQ } }; =20 - object_property_set_bool(OBJECT(&s->gpio[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gpio[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->gpio[i]), 0, gpio_table[i].addr= ); @@ -250,17 +240,15 @@ static void fsl_imx25_realize(DeviceState *dev, Error= **errp) =20 /* initialize 2 x 16 KB ROM */ memory_region_init_rom(&s->rom[0], NULL, - "imx25.rom0", FSL_IMX25_ROM0_SIZE, &err); - if (err) { - error_propagate(errp, err); + "imx25.rom0", FSL_IMX25_ROM0_SIZE, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX25_ROM0_ADDR, &s->rom[0]); memory_region_init_rom(&s->rom[1], NULL, - "imx25.rom1", FSL_IMX25_ROM1_SIZE, &err); - if (err) { - error_propagate(errp, err); + "imx25.rom1", FSL_IMX25_ROM1_SIZE, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX25_ROM1_ADDR, @@ -268,9 +256,8 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) =20 /* initialize internal RAM (128 KB) */ memory_region_init_ram(&s->iram, NULL, "imx25.iram", FSL_IMX25_IRAM_SI= ZE, - &err); - if (err) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX25_IRAM_ADDR, diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c index c30130667e..0cc80f3aee 100644 --- a/hw/arm/fsl-imx31.c +++ b/hw/arm/fsl-imx31.c @@ -70,17 +70,14 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) { FslIMX31State *s =3D FSL_IMX31(dev); uint16_t i; - Error *err =3D NULL; =20 - object_property_set_bool(OBJECT(&s->cpu), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->cpu), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 - object_property_set_bool(OBJECT(&s->avic), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->avic), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->avic), 0, FSL_IMX31_AVIC_ADDR); @@ -89,9 +86,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error **e= rrp) sysbus_connect_irq(SYS_BUS_DEVICE(&s->avic), 1, qdev_get_gpio_in(DEVICE(&s->cpu), ARM_CPU_FIQ)); =20 - object_property_set_bool(OBJECT(&s->ccm), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->ccm), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->ccm), 0, FSL_IMX31_CCM_ADDR); @@ -120,9 +116,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", chr); } =20 - object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -134,9 +129,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) =20 s->gpt.ccm =3D IMX_CCM(&s->ccm); =20 - object_property_set_bool(OBJECT(&s->gpt), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gpt), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -156,9 +150,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) =20 s->epit[i].ccm =3D IMX_CCM(&s->ccm); =20 - object_property_set_bool(OBJECT(&s->epit[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->epit[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -180,9 +173,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) }; =20 /* Initialize the I2C */ - object_property_set_bool(OBJECT(&s->i2c[i]), true, "realized", &er= r); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->i2c[i]), true, "realized", err= p); + if (ERR_IS_SET(errp)) { return; } /* Map I2C memory */ @@ -206,9 +198,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) =20 object_property_set_bool(OBJECT(&s->gpio[i]), false, "has-edge-sel= ", &error_abort); - object_property_set_bool(OBJECT(&s->gpio[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gpio[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->gpio[i]), 0, gpio_table[i].addr= ); @@ -220,9 +211,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) =20 /* On a real system, the first 16k is a `secure boot rom' */ memory_region_init_rom(&s->secure_rom, NULL, "imx31.secure_rom", - FSL_IMX31_SECURE_ROM_SIZE, &err); - if (err) { - error_propagate(errp, err); + FSL_IMX31_SECURE_ROM_SIZE, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX31_SECURE_ROM_= ADDR, @@ -230,9 +220,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) =20 /* There is also a 16k ROM */ memory_region_init_rom(&s->rom, NULL, "imx31.rom", - FSL_IMX31_ROM_SIZE, &err); - if (err) { - error_propagate(errp, err); + FSL_IMX31_ROM_SIZE, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX31_ROM_ADDR, @@ -240,9 +229,8 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) =20 /* initialize internal RAM (16 KB) */ memory_region_init_ram(&s->iram, NULL, "imx31.iram", FSL_IMX31_IRAM_SI= ZE, - &err); - if (err) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX31_IRAM_ADDR, diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 73610d48a5..1bdf9dbd70 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -123,7 +123,6 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) { FslIMX6State *s =3D FSL_IMX6(dev); uint16_t i; - Error *err =3D NULL; =20 for (i =3D 0; i < smp_cpus; i++) { =20 @@ -139,9 +138,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) "start-powered-off", &error_abort); } =20 - object_property_set_bool(OBJECT(&s->cpu[i]), true, "realized", &er= r); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->cpu[i]), true, "realized", err= p); + if (ERR_IS_SET(errp)) { return; } } @@ -153,9 +151,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) FSL_IMX6_MAX_IRQ + GIC_INTERNAL, "num-irq", &error_abort); =20 - object_property_set_bool(OBJECT(&s->a9mpcore), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->a9mpcore), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->a9mpcore), 0, FSL_IMX6_A9MPCORE_ADD= R); @@ -167,16 +164,14 @@ static void fsl_imx6_realize(DeviceState *dev, Error = **errp) qdev_get_gpio_in(DEVICE(&s->cpu[i]), ARM_CPU_FI= Q)); } =20 - object_property_set_bool(OBJECT(&s->ccm), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->ccm), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->ccm), 0, FSL_IMX6_CCM_ADDR); =20 - object_property_set_bool(OBJECT(&s->src), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->src), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->src), 0, FSL_IMX6_SRC_ADDR); @@ -209,9 +204,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", chr); } =20 - object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -223,9 +217,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) =20 s->gpt.ccm =3D IMX_CCM(&s->ccm); =20 - object_property_set_bool(OBJECT(&s->gpt), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gpt), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -246,9 +239,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) =20 s->epit[i].ccm =3D IMX_CCM(&s->ccm); =20 - object_property_set_bool(OBJECT(&s->epit[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->epit[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -269,9 +261,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) { FSL_IMX6_I2C3_ADDR, FSL_IMX6_I2C3_IRQ } }; =20 - object_property_set_bool(OBJECT(&s->i2c[i]), true, "realized", &er= r); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->i2c[i]), true, "realized", err= p); + if (ERR_IS_SET(errp)) { return; } =20 @@ -329,9 +320,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) &error_abort); object_property_set_bool(OBJECT(&s->gpio[i]), true, "has-upper-pin= -irq", &error_abort); - object_property_set_bool(OBJECT(&s->gpio[i]), true, "realized", &e= rr); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gpio[i]), true, "realized", er= rp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -356,9 +346,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) { FSL_IMX6_uSDHC4_ADDR, FSL_IMX6_uSDHC4_IRQ }, }; =20 - object_property_set_bool(OBJECT(&s->esdhc[i]), true, "realized", &= err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->esdhc[i]), true, "realized", e= rrp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->esdhc[i]), 0, esdhc_table[i].ad= dr); @@ -381,9 +370,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) }; =20 /* Initialize the SPI */ - object_property_set_bool(OBJECT(&s->spi[i]), true, "realized", &er= r); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->spi[i]), true, "realized", err= p); + if (ERR_IS_SET(errp)) { return; } =20 @@ -393,9 +381,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) spi_table[i].irq)); } =20 - object_property_set_bool(OBJECT(&s->eth), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->eth), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(&s->eth), 0, FSL_IMX6_ENET_ADDR); @@ -408,9 +395,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) =20 /* ROM memory */ memory_region_init_rom(&s->rom, NULL, "imx6.rom", - FSL_IMX6_ROM_SIZE, &err); - if (err) { - error_propagate(errp, err); + FSL_IMX6_ROM_SIZE, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX6_ROM_ADDR, @@ -418,9 +404,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) =20 /* CAAM memory */ memory_region_init_rom(&s->caam, NULL, "imx6.caam", - FSL_IMX6_CAAM_MEM_SIZE, &err); - if (err) { - error_propagate(errp, err); + FSL_IMX6_CAAM_MEM_SIZE, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX6_CAAM_MEM_ADD= R, @@ -428,9 +413,8 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) =20 /* OCRAM memory */ memory_region_init_ram(&s->ocram, NULL, "imx6.ocram", FSL_IMX6_OCRAM_S= IZE, - &err); - if (err) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } memory_region_add_subregion(get_system_memory(), FSL_IMX6_OCRAM_ADDR, diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index 38f9577284..ee6c64b409 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -96,7 +96,6 @@ static inline int arm_gic_ppi_index(int cpu_nr, int ppi_i= ndex) static void xlnx_zynqmp_create_rpu(XlnxZynqMPState *s, const char *boot_cp= u, Error **errp) { - Error *err =3D NULL; int i; =20 for (i =3D 0; i < XLNX_ZYNQMP_NUM_RPU_CPUS; i++) { @@ -120,9 +119,8 @@ static void xlnx_zynqmp_create_rpu(XlnxZynqMPState *s, = const char *boot_cpu, object_property_set_bool(OBJECT(&s->rpu_cpu[i]), true, "reset-hive= cs", &error_abort); object_property_set_bool(OBJECT(&s->rpu_cpu[i]), true, "realized", - &err); - if (err) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 5fed23c774..597ea719a7 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -473,16 +473,14 @@ static void fd_revalidate(FDrive *drv) static void fd_change_cb(void *opaque, bool load, Error **errp) { FDrive *drive =3D opaque; - Error *local_err =3D NULL; =20 if (!load) { blk_set_perm(drive->blk, 0, BLK_PERM_ALL, &error_abort); } else { blkconf_apply_backend_options(drive->conf, blk_is_read_only(drive->blk), false, - &local_err); - if (local_err) { - error_propagate(errp, local_err); + errp); + if (ERR_IS_SET(errp)) { return; } } @@ -2528,7 +2526,6 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, Dev= iceState *fdc_dev, FDrive *drive; DeviceState *dev; BlockBackend *blk; - Error *local_err =3D NULL; =20 for (i =3D 0; i < MAX_FD; i++) { drive =3D &fdctrl->drives[i]; @@ -2550,17 +2547,15 @@ static void fdctrl_connect_drives(FDCtrl *fdctrl, D= eviceState *fdc_dev, blk_ref(blk); blk_detach_dev(blk, fdc_dev); fdctrl->qdev_for_drives[i].blk =3D NULL; - qdev_prop_set_drive(dev, "drive", blk, &local_err); + qdev_prop_set_drive(dev, "drive", blk, errp); blk_unref(blk); =20 - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } =20 - object_property_set_bool(OBJECT(dev), true, "realized", &local_err= ); - if (local_err) { - error_propagate(errp, local_err); + object_property_set_bool(OBJECT(dev), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } } @@ -2689,7 +2684,6 @@ static void isabus_fdc_realize(DeviceState *dev, Erro= r **errp) ISADevice *isadev =3D ISA_DEVICE(dev); FDCtrlISABus *isa =3D ISA_FDC(dev); FDCtrl *fdctrl =3D &isa->state; - Error *err =3D NULL; =20 isa_register_portio_list(isadev, &fdctrl->portio_list, isa->iobase, fdc_portio_list, fdctrl, @@ -2703,9 +2697,8 @@ static void isabus_fdc_realize(DeviceState *dev, Erro= r **errp) } =20 qdev_set_legacy_instance_id(dev, isa->iobase, 2); - fdctrl_realize_common(dev, fdctrl, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + fdctrl_realize_common(dev, fdctrl, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 594d4cf6fe..e634b128ce 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -706,7 +706,6 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) int ret; uint64_t blocks_per_device, sector_len_per_device, device_len; int num_devices; - Error *local_err =3D NULL; =20 if (pfl->sector_len =3D=3D 0) { error_setg(errp, "attribute \"sector-length\" not specified or zer= o."); @@ -747,9 +746,8 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) &pfl->mem, OBJECT(dev), &pflash_cfi01_ops, pfl, - pfl->name, total_len, &local_err); - if (local_err) { - error_propagate(errp, local_err); + pfl->name, total_len, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index e6c5c6c25d..2ef8c76b94 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -598,7 +598,6 @@ static void pflash_cfi02_realize(DeviceState *dev, Erro= r **errp) pflash_t *pfl =3D CFI_PFLASH02(dev); uint32_t chip_len; int ret; - Error *local_err =3D NULL; =20 if (pfl->sector_len =3D=3D 0) { error_setg(errp, "attribute \"sector-length\" not specified or zer= o."); @@ -623,9 +622,8 @@ static void pflash_cfi02_realize(DeviceState *dev, Erro= r **errp) =20 memory_region_init_rom_device(&pfl->orig_mem, OBJECT(pfl), pfl->be ? &pflash_cfi02_ops_be : &pflash_cfi02_ops= _le, - pfl, pfl->name, chip_len, &local_err); - if (local_err) { - error_propagate(errp, local_err); + pfl, pfl->name, chip_len, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index ce9cf63c3e..11455faebc 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -909,7 +909,6 @@ static void virtio_blk_device_realize(DeviceState *dev,= Error **errp) VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtIOBlock *s =3D VIRTIO_BLK(dev); VirtIOBlkConf *conf =3D &s->conf; - Error *err =3D NULL; unsigned i; =20 if (!conf->conf.blk) { @@ -928,15 +927,13 @@ static void virtio_blk_device_realize(DeviceState *de= v, Error **errp) blkconf_serial(&conf->conf, &conf->serial); blkconf_apply_backend_options(&conf->conf, blk_is_read_only(conf->conf.blk), true, - &err); - if (err) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } s->original_wce =3D blk_enable_write_cache(conf->conf.blk); - blkconf_geometry(&conf->conf, NULL, 65535, 255, 255, &err); - if (err) { - error_propagate(errp, err); + blkconf_geometry(&conf->conf, NULL, 65535, 255, 255, errp); + if (ERR_IS_SET(errp)) { return; } blkconf_blocksizes(&conf->conf); @@ -951,9 +948,8 @@ static void virtio_blk_device_realize(DeviceState *dev,= Error **errp) for (i =3D 0; i < conf->num_queues; i++) { virtio_add_queue(vdev, 128, virtio_blk_handle_output); } - virtio_blk_data_plane_create(vdev, conf, &s->dataplane, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + virtio_blk_data_plane_create(vdev, conf, &s->dataplane, errp); + if (ERR_IS_SET(errp)) { virtio_cleanup(vdev); return; } diff --git a/hw/char/debugcon.c b/hw/char/debugcon.c index 762e3d8ada..90e437edfb 100644 --- a/hw/char/debugcon.c +++ b/hw/char/debugcon.c @@ -100,11 +100,9 @@ static void debugcon_isa_realizefn(DeviceState *dev, E= rror **errp) ISADevice *d =3D ISA_DEVICE(dev); ISADebugconState *isa =3D ISA_DEBUGCON_DEVICE(dev); DebugconState *s =3D &isa->state; - Error *err =3D NULL; =20 - debugcon_realize_core(s, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + debugcon_realize_core(s, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_init_io(&s->io, OBJECT(dev), &debugcon_ops, s, diff --git a/hw/char/serial-pci.c b/hw/char/serial-pci.c index 303104dd19..60074eb114 100644 --- a/hw/char/serial-pci.c +++ b/hw/char/serial-pci.c @@ -55,12 +55,10 @@ static void serial_pci_realize(PCIDevice *dev, Error **= errp) { PCISerialState *pci =3D DO_UPCAST(PCISerialState, dev, dev); SerialState *s =3D &pci->state; - Error *err =3D NULL; =20 s->baudbase =3D 115200; - serial_realize_core(s, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + serial_realize_core(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -91,7 +89,6 @@ static void multi_serial_pci_realize(PCIDevice *dev, Erro= r **errp) PCIDeviceClass *pc =3D PCI_DEVICE_GET_CLASS(dev); PCIMultiSerialState *pci =3D DO_UPCAST(PCIMultiSerialState, dev, dev); SerialState *s; - Error *err =3D NULL; int i, nr_ports =3D 0; =20 switch (pc->device_id) { @@ -115,9 +112,8 @@ static void multi_serial_pci_realize(PCIDevice *dev, Er= ror **errp) for (i =3D 0; i < nr_ports; i++) { s =3D pci->state + i; s->baudbase =3D 115200; - serial_realize_core(s, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + serial_realize_core(s, errp); + if (ERR_IS_SET(errp)) { multi_serial_pci_exit(dev); return; } diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c index f5bc173844..8f0d130d49 100644 --- a/hw/char/virtio-serial-bus.c +++ b/hw/char/virtio-serial-bus.c @@ -926,7 +926,6 @@ static void virtser_port_device_realize(DeviceState *de= v, Error **errp) VirtIOSerialBus *bus =3D VIRTIO_SERIAL_BUS(qdev_get_parent_bus(dev)); int max_nr_ports; bool plugging_port0; - Error *err =3D NULL; =20 port->vser =3D bus->vser; port->bh =3D qemu_bh_new(flush_queued_data_bh, port); @@ -972,9 +971,8 @@ static void virtser_port_device_realize(DeviceState *de= v, Error **errp) return; } =20 - vsc->realize(dev, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + vsc->realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/core/machine.c b/hw/core/machine.c index 2e7e9778cd..61e921c9ef 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -91,12 +91,10 @@ static void machine_set_kvm_shadow_mem(Object *obj, Vis= itor *v, Error **errp) { MachineState *ms =3D MACHINE(obj); - Error *error =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &error); - if (error) { - error_propagate(errp, error); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -193,12 +191,10 @@ static void machine_set_phandle_start(Object *obj, Vi= sitor *v, Error **errp) { MachineState *ms =3D MACHINE(obj); - Error *error =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &error); - if (error) { - error_propagate(errp, error); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 73640ee3c6..68c97c08dc 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -43,7 +43,6 @@ static void set_pointer(Object *obj, Visitor *v, Property= *prop, const char *name, Error **errp) { DeviceState *dev =3D DEVICE(obj); - Error *local_err =3D NULL; void **ptr =3D qdev_get_prop_ptr(dev, prop); char *str; =20 @@ -52,9 +51,8 @@ static void set_pointer(Object *obj, Visitor *v, Property= *prop, return; } =20 - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &str, errp); + if (ERR_IS_SET(errp)) { return; } if (!*str) { @@ -185,7 +183,6 @@ static void set_chr(Object *obj, Visitor *v, const char= *name, void *opaque, Error **errp) { DeviceState *dev =3D DEVICE(obj); - Error *local_err =3D NULL; Property *prop =3D opaque; CharBackend *be =3D qdev_get_prop_ptr(dev, prop); Chardev *s; @@ -196,9 +193,8 @@ static void set_chr(Object *obj, Visitor *v, const char= *name, void *opaque, return; } =20 - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &str, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -257,7 +253,6 @@ static void set_netdev(Object *obj, Visitor *v, const c= har *name, NICPeers *peers_ptr =3D qdev_get_prop_ptr(dev, prop); NetClientState **ncs =3D peers_ptr->ncs; NetClientState *peers[MAX_QUEUE_NUM]; - Error *local_err =3D NULL; int queues, err =3D 0, i =3D 0; char *str; =20 @@ -266,9 +261,8 @@ static void set_netdev(Object *obj, Visitor *v, const c= har *name, return; } =20 - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &str, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -361,7 +355,6 @@ static void set_vlan(Object *obj, Visitor *v, const cha= r *name, void *opaque, Property *prop =3D opaque; NICPeers *peers_ptr =3D qdev_get_prop_ptr(dev, prop); NetClientState **ptr =3D &peers_ptr->ncs[0]; - Error *local_err =3D NULL; int32_t id; NetClientState *hubport; =20 @@ -370,9 +363,8 @@ static void set_vlan(Object *obj, Visitor *v, const cha= r *name, void *opaque, return; } =20 - visit_type_int32(v, name, &id, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int32(v, name, &id, errp); + if (ERR_IS_SET(errp)) { return; } if (id =3D=3D -1) { diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 65ba36f4fb..f289841484 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -104,7 +104,6 @@ static void prop_set_bit(Object *obj, Visitor *v, const= char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - Error *local_err =3D NULL; bool value; =20 if (dev->realized) { @@ -112,9 +111,8 @@ static void prop_set_bit(Object *obj, Visitor *v, const= char *name, return; } =20 - visit_type_bool(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_bool(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } bit_prop_set(dev, prop, value); @@ -162,7 +160,6 @@ static void prop_set_bit64(Object *obj, Visitor *v, con= st char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - Error *local_err =3D NULL; bool value; =20 if (dev->realized) { @@ -170,9 +167,8 @@ static void prop_set_bit64(Object *obj, Visitor *v, con= st char *name, return; } =20 - visit_type_bool(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_bool(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } bit64_prop_set(dev, prop, value); @@ -410,7 +406,6 @@ static void set_string(Object *obj, Visitor *v, const c= har *name, DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; char **ptr =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; char *str; =20 if (dev->realized) { @@ -418,9 +413,8 @@ static void set_string(Object *obj, Visitor *v, const c= har *name, return; } =20 - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &str, errp); + if (ERR_IS_SET(errp)) { return; } g_free(*ptr); @@ -470,7 +464,6 @@ static void set_mac(Object *obj, Visitor *v, const char= *name, void *opaque, DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; MACAddr *mac =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; int i, pos; char *str, *p; =20 @@ -479,9 +472,8 @@ static void set_mac(Object *obj, Visitor *v, const char= *name, void *opaque, return; } =20 - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &str, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -658,7 +650,6 @@ static void set_blocksize(Object *obj, Visitor *v, cons= t char *name, DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; uint16_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; const int64_t min =3D 512; const int64_t max =3D 32768; =20 @@ -667,9 +658,8 @@ static void set_blocksize(Object *obj, Visitor *v, cons= t char *name, return; } =20 - visit_type_uint16(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_uint16(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } /* value of 0 means "unset" */ @@ -732,7 +722,6 @@ static void set_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; PCIHostDeviceAddress *addr =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; char *str, *p; char *e; unsigned long val; @@ -744,9 +733,8 @@ static void set_pci_host_devaddr(Object *obj, Visitor *= v, const char *name, return; } =20 - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &str, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -852,7 +840,6 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, Property *prop =3D opaque; uint32_t *alenptr =3D qdev_get_prop_ptr(dev, prop); void **arrayptr =3D (void *)dev + prop->arrayoffset; - Error *local_err =3D NULL; void *eltptr; const char *arrayname; int i; @@ -866,9 +853,8 @@ 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); + visit_type_uint32(v, name, alenptr, errp); + if (ERR_IS_SET(errp)) { return; } if (!*alenptr) { @@ -905,9 +891,8 @@ static void set_prop_arraylen(Object *obj, Visitor *v, = const char *name, arrayprop->prop.info->get, arrayprop->prop.info->set, array_element_release, - arrayprop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + arrayprop, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 163e827e01..cd95d8ce63 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -768,7 +768,6 @@ static void qdev_property_add_legacy(DeviceState *dev, = Property *prop, void qdev_property_add_static(DeviceState *dev, Property *prop, Error **errp) { - Error *local_err =3D NULL; Object *obj =3D OBJECT(dev); =20 /* @@ -783,10 +782,9 @@ void qdev_property_add_static(DeviceState *dev, Proper= ty *prop, object_property_add(obj, prop->name, prop->info->name, prop->info->get, prop->info->set, prop->info->release, - prop, &local_err); + prop, errp); =20 - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/cpu/a15mpcore.c b/hw/cpu/a15mpcore.c index 6d376b978d..e9f5caee7d 100644 --- a/hw/cpu/a15mpcore.c +++ b/hw/cpu/a15mpcore.c @@ -53,7 +53,6 @@ static void a15mp_priv_realize(DeviceState *dev, Error **= errp) DeviceState *gicdev; SysBusDevice *busdev; int i; - Error *err =3D NULL; bool has_el3; Object *cpuobj; =20 @@ -71,9 +70,8 @@ static void a15mp_priv_realize(DeviceState *dev, Error **= errp) qdev_prop_set_bit(gicdev, "has-security-extensions", has_el3); } =20 - object_property_set_bool(OBJECT(&s->gic), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gic), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } busdev =3D SYS_BUS_DEVICE(&s->gic); diff --git a/hw/cpu/a9mpcore.c b/hw/cpu/a9mpcore.c index 23f2c252bd..b32fbb7a44 100644 --- a/hw/cpu/a9mpcore.c +++ b/hw/cpu/a9mpcore.c @@ -50,16 +50,14 @@ static void a9mp_priv_realize(DeviceState *dev, Error *= *errp) DeviceState *scudev, *gicdev, *gtimerdev, *mptimerdev, *wdtdev; SysBusDevice *scubusdev, *gicbusdev, *gtimerbusdev, *mptimerbusdev, *wdtbusdev; - Error *err =3D NULL; int i; bool has_el3; Object *cpuobj; =20 scudev =3D DEVICE(&s->scu); qdev_prop_set_uint32(scudev, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->scu), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->scu), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } scubusdev =3D SYS_BUS_DEVICE(&s->scu); @@ -76,9 +74,8 @@ static void a9mp_priv_realize(DeviceState *dev, Error **e= rrp) object_property_get_bool(cpuobj, "has_el3", &error_abort); qdev_prop_set_bit(gicdev, "has-security-extensions", has_el3); =20 - object_property_set_bool(OBJECT(&s->gic), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gic), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } gicbusdev =3D SYS_BUS_DEVICE(&s->gic); @@ -91,27 +88,24 @@ static void a9mp_priv_realize(DeviceState *dev, Error *= *errp) =20 gtimerdev =3D DEVICE(&s->gtimer); qdev_prop_set_uint32(gtimerdev, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->gtimer), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gtimer), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } gtimerbusdev =3D SYS_BUS_DEVICE(&s->gtimer); =20 mptimerdev =3D DEVICE(&s->mptimer); qdev_prop_set_uint32(mptimerdev, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->mptimer), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->mptimer), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } mptimerbusdev =3D SYS_BUS_DEVICE(&s->mptimer); =20 wdtdev =3D DEVICE(&s->wdt); qdev_prop_set_uint32(wdtdev, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->wdt), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->wdt), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } wdtbusdev =3D SYS_BUS_DEVICE(&s->wdt); diff --git a/hw/cpu/arm11mpcore.c b/hw/cpu/arm11mpcore.c index eb244658b9..60336b1c0a 100644 --- a/hw/cpu/arm11mpcore.c +++ b/hw/cpu/arm11mpcore.c @@ -72,20 +72,17 @@ static void mpcore_priv_realize(DeviceState *dev, Error= **errp) DeviceState *gicdev =3D DEVICE(&s->gic); DeviceState *mptimerdev =3D DEVICE(&s->mptimer); DeviceState *wdtimerdev =3D DEVICE(&s->wdtimer); - Error *err =3D NULL; =20 qdev_prop_set_uint32(scudev, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->scu), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->scu), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 qdev_prop_set_uint32(gicdev, "num-cpu", s->num_cpu); qdev_prop_set_uint32(gicdev, "num-irq", s->num_irq); - object_property_set_bool(OBJECT(&s->gic), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gic), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -96,16 +93,14 @@ static void mpcore_priv_realize(DeviceState *dev, Error= **errp) qdev_init_gpio_in(dev, mpcore_priv_set_irq, s->num_irq - 32); =20 qdev_prop_set_uint32(mptimerdev, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->mptimer), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->mptimer), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 qdev_prop_set_uint32(wdtimerdev, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->wdtimer), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->wdtimer), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/cpu/core.c b/hw/cpu/core.c index b38d882432..a10e655d32 100644 --- a/hw/cpu/core.c +++ b/hw/cpu/core.c @@ -24,12 +24,10 @@ static void core_prop_set_core_id(Object *obj, Visitor = *v, const char *name, void *opaque, Error **errp) { CPUCore *core =3D CPU_CORE(obj); - Error *local_err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -49,12 +47,10 @@ static void core_prop_set_nr_threads(Object *obj, Visit= or *v, const char *name, void *opaque, Error **errp) { CPUCore *core =3D CPU_CORE(obj); - Error *local_err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/cpu/realview_mpcore.c b/hw/cpu/realview_mpcore.c index 39d4ebeb1d..be5fad6d74 100644 --- a/hw/cpu/realview_mpcore.c +++ b/hw/cpu/realview_mpcore.c @@ -62,14 +62,12 @@ static void realview_mpcore_realize(DeviceState *dev, E= rror **errp) DeviceState *priv =3D DEVICE(&s->priv); DeviceState *gic; SysBusDevice *gicbusdev; - Error *err =3D NULL; int n; int i; =20 qdev_prop_set_uint32(priv, "num-cpu", s->num_cpu); - object_property_set_bool(OBJECT(&s->priv), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->priv), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_pass_irq(sbd, SYS_BUS_DEVICE(&s->priv)); @@ -78,9 +76,8 @@ static void realview_mpcore_realize(DeviceState *dev, Err= or **errp) } /* ??? IRQ routing is hardcoded to "normal" mode. */ for (n =3D 0; n < 4; n++) { - object_property_set_bool(OBJECT(&s->gic[n]), true, "realized", &er= r); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gic[n]), true, "realized", err= p); + if (ERR_IS_SET(errp)) { return; } gic =3D DEVICE(&s->gic[n]); diff --git a/hw/display/qxl.c b/hw/display/qxl.c index ad09bb98f9..0013b29ca5 100644 --- a/hw/display/qxl.c +++ b/hw/display/qxl.c @@ -2163,7 +2163,6 @@ static void qxl_realize_primary(PCIDevice *dev, Error= **errp) { PCIQXLDevice *qxl =3D PCI_QXL(dev); VGACommonState *vga =3D &qxl->vga; - Error *local_err =3D NULL; =20 qxl->id =3D 0; qxl_init_ramsize(qxl); @@ -2180,9 +2179,8 @@ static void qxl_realize_primary(PCIDevice *dev, Error= **errp) vga->con =3D graphic_console_init(DEVICE(dev), 0, &qxl_ops, qxl); qemu_spice_display_init_common(&qxl->ssd); =20 - qxl_realize_common(qxl, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qxl_realize_common(qxl, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 58dc0b2737..9c8ecd2d87 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -1104,7 +1104,6 @@ static void virtio_gpu_device_realize(DeviceState *qd= ev, Error **errp) VirtIODevice *vdev =3D VIRTIO_DEVICE(qdev); VirtIOGPU *g =3D VIRTIO_GPU(qdev); bool have_virgl; - Error *local_err =3D NULL; int i; =20 if (g->conf.max_outputs > VIRTIO_GPU_MAX_SCANOUTS) { @@ -1124,9 +1123,8 @@ static void virtio_gpu_device_realize(DeviceState *qd= ev, Error **errp) =20 if (virtio_gpu_virgl_enabled(g->conf)) { error_setg(&g->migration_blocker, "virgl is not yet migratable"); - migrate_add_blocker(g->migration_blocker, &local_err); - if (local_err) { - error_propagate(errp, local_err); + migrate_add_blocker(g->migration_blocker, errp); + if (ERR_IS_SET(errp)) { error_free(g->migration_blocker); return; } diff --git a/hw/display/virtio-vga.c b/hw/display/virtio-vga.c index f9b017d86b..f18484e333 100644 --- a/hw/display/virtio-vga.c +++ b/hw/display/virtio-vga.c @@ -101,7 +101,6 @@ static void virtio_vga_realize(VirtIOPCIProxy *vpci_dev= , Error **errp) VirtIOVGA *vvga =3D VIRTIO_VGA(vpci_dev); VirtIOGPU *g =3D &vvga->vdev; VGACommonState *vga =3D &vvga->vga; - Error *err =3D NULL; uint32_t offset; int i; =20 @@ -146,9 +145,8 @@ static void virtio_vga_realize(VirtIOPCIProxy *vpci_dev= , Error **errp) /* init virtio bits */ qdev_set_parent_bus(DEVICE(g), BUS(&vpci_dev->bus)); virtio_pci_force_virtio_1(vpci_dev); - object_property_set_bool(OBJECT(g), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(g), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/i386/kvm/pci-assign.c b/hw/i386/kvm/pci-assign.c index bc8795f7f3..194ebb70f3 100644 --- a/hw/i386/kvm/pci-assign.c +++ b/hw/i386/kvm/pci-assign.c @@ -838,7 +838,6 @@ static int assign_intx(AssignedDevice *dev, Error **err= p) PCIINTxRoute intx_route; bool intx_host_msi; int r; - Error *local_err =3D NULL; =20 /* Interrupt PIN 0 means don't use INTx */ if (assigned_dev_pci_read_byte(&dev->dev, PCI_INTERRUPT_PIN) =3D=3D 0)= { @@ -846,9 +845,8 @@ static int assign_intx(AssignedDevice *dev, Error **err= p) return 0; } =20 - verify_irqchip_in_kernel(&local_err); - if (local_err) { - error_propagate(errp, local_err); + verify_irqchip_in_kernel(errp); + if (ERR_IS_SET(errp)) { return -ENOTSUP; } =20 diff --git a/hw/i386/pc.c b/hw/i386/pc.c index efa6c35157..7ce0ed96de 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1111,7 +1111,6 @@ void pc_hot_add_cpu(const int64_t id, Error **errp) ObjectClass *oc; MachineState *ms =3D MACHINE(qdev_get_machine()); int64_t apic_id =3D x86_cpu_apic_id_from_index(id); - Error *local_err =3D NULL; =20 if (id < 0) { error_setg(errp, "Invalid CPU id: %" PRIi64, id); @@ -1127,9 +1126,8 @@ void pc_hot_add_cpu(const int64_t id, Error **errp) =20 assert(ms->possible_cpus->cpus[0].cpu); /* BSP is always present */ oc =3D OBJECT_CLASS(CPU_GET_CLASS(ms->possible_cpus->cpus[0].cpu)); - pc_new_cpu(object_class_get_name(oc), apic_id, &local_err); - if (local_err) { - error_propagate(errp, local_err); + pc_new_cpu(object_class_get_name(oc), apic_id, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/hw/input/virtio-input.c b/hw/input/virtio-input.c index 0e42f0d02c..beb38528bd 100644 --- a/hw/input/virtio-input.c +++ b/hw/input/virtio-input.c @@ -235,12 +235,10 @@ static void virtio_input_device_realize(DeviceState *= dev, Error **errp) VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtIOInput *vinput =3D VIRTIO_INPUT(dev); VirtIOInputConfig *cfg; - Error *local_err =3D NULL; =20 if (vic->realize) { - vic->realize(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + vic->realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -278,12 +276,10 @@ static void virtio_input_device_unrealize(DeviceState= *dev, Error **errp) { VirtIOInputClass *vic =3D VIRTIO_INPUT_GET_CLASS(dev); VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); - Error *local_err =3D NULL; =20 if (vic->unrealize) { - vic->unrealize(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + vic->unrealize(dev, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c index 09b75a3048..536cbad4d0 100644 --- a/hw/intc/apic_common.c +++ b/hw/intc/apic_common.c @@ -461,7 +461,6 @@ static void apic_common_set_id(Object *obj, Visitor *v,= const char *name, { APICCommonState *s =3D APIC_COMMON(obj); DeviceState *dev =3D DEVICE(obj); - Error *local_err =3D NULL; int64_t value; =20 if (dev->realized) { @@ -469,9 +468,8 @@ static void apic_common_set_id(Object *obj, Visitor *v,= const char *name, return; } =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c index b305d9032a..aa01bac522 100644 --- a/hw/intc/arm_gic.c +++ b/hw/intc/arm_gic.c @@ -1404,11 +1404,9 @@ static void arm_gic_realize(DeviceState *dev, Error = **errp) GICState *s =3D ARM_GIC(dev); SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); ARMGICClass *agc =3D ARM_GIC_GET_CLASS(s); - Error *local_err =3D NULL; =20 - agc->parent_realize(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + agc->parent_realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/intc/arm_gic_kvm.c b/hw/intc/arm_gic_kvm.c index af5cd367e9..00f1b704be 100644 --- a/hw/intc/arm_gic_kvm.c +++ b/hw/intc/arm_gic_kvm.c @@ -495,12 +495,10 @@ static void kvm_arm_gic_realize(DeviceState *dev, Err= or **errp) int i; GICState *s =3D KVM_ARM_GIC(dev); KVMARMGICClass *kgc =3D KVM_ARM_GIC_GET_CLASS(s); - Error *local_err =3D NULL; int ret; =20 - kgc->parent_realize(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + kgc->parent_realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -513,9 +511,8 @@ static void kvm_arm_gic_realize(DeviceState *dev, Error= **errp) if (!kvm_arm_gic_can_save_restore(s)) { error_setg(&s->migration_blocker, "This operating system kernel do= es " "not support vGICv2 migration"); - migrate_add_blocker(s->migration_blocker, &local_err); - if (local_err) { - error_propagate(errp, local_err); + migrate_add_blocker(s->migration_blocker, errp); + if (ERR_IS_SET(errp)) { error_free(s->migration_blocker); return; } diff --git a/hw/intc/arm_gicv3.c b/hw/intc/arm_gicv3.c index f0c967b304..1dd941fef3 100644 --- a/hw/intc/arm_gicv3.c +++ b/hw/intc/arm_gicv3.c @@ -365,11 +365,9 @@ static void arm_gic_realize(DeviceState *dev, Error **= errp) /* Device instance realize function for the GIC sysbus device */ GICv3State *s =3D ARM_GICV3(dev); ARMGICv3Class *agc =3D ARM_GICV3_GET_CLASS(s); - Error *local_err =3D NULL; =20 - agc->parent_realize(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + agc->parent_realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/intc/arm_gicv3_its_kvm.c b/hw/intc/arm_gicv3_its_kvm.c index a0441d6bd1..edeb4334d1 100644 --- a/hw/intc/arm_gicv3_its_kvm.c +++ b/hw/intc/arm_gicv3_its_kvm.c @@ -56,16 +56,14 @@ static int kvm_its_send_msi(GICv3ITSState *s, uint32_t = value, uint16_t devid) static void kvm_arm_its_realize(DeviceState *dev, Error **errp) { GICv3ITSState *s =3D ARM_GICV3_ITS_COMMON(dev); - Error *local_err =3D NULL; =20 /* * Block migration of a KVM GICv3 ITS device: the API for saving and * restoring the state in the kernel is not yet available */ error_setg(&s->migration_blocker, "vITS migration is not implemented"); - migrate_add_blocker(s->migration_blocker, &local_err); - if (local_err) { - error_propagate(errp, local_err); + migrate_add_blocker(s->migration_blocker, errp); + if (ERR_IS_SET(errp)) { error_free(s->migration_blocker); return; } diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c index 4ee2baa691..21e86edb17 100644 --- a/hw/intc/arm_gicv3_kvm.c +++ b/hw/intc/arm_gicv3_kvm.c @@ -684,14 +684,12 @@ static void kvm_arm_gicv3_realize(DeviceState *dev, E= rror **errp) { GICv3State *s =3D KVM_ARM_GICV3(dev); KVMARMGICv3Class *kgc =3D KVM_ARM_GICV3_GET_CLASS(s); - Error *local_err =3D NULL; int i; =20 DPRINTF("kvm_arm_gicv3_realize\n"); =20 - kgc->parent_realize(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + kgc->parent_realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -744,9 +742,8 @@ static void kvm_arm_gicv3_realize(DeviceState *dev, Err= or **errp) GICD_CTLR)) { error_setg(&s->migration_blocker, "This operating system kernel do= es " "not support vGICv3 migration"); - migrate_add_blocker(s->migration_blocker, &local_err); - if (local_err) { - error_propagate(errp, local_err); + migrate_add_blocker(s->migration_blocker, errp); + if (ERR_IS_SET(errp)) { error_free(s->migration_blocker); return; } diff --git a/hw/intc/armv7m_nvic.c b/hw/intc/armv7m_nvic.c index 26a4b2dcb5..7795c0623f 100644 --- a/hw/intc/armv7m_nvic.c +++ b/hw/intc/armv7m_nvic.c @@ -1003,7 +1003,6 @@ static void armv7m_nvic_realize(DeviceState *dev, Err= or **errp) { NVICState *s =3D NVIC(dev); SysBusDevice *systick_sbd; - Error *err =3D NULL; =20 s->cpu =3D ARM_CPU(qemu_get_cpu(0)); assert(s->cpu); @@ -1018,9 +1017,8 @@ static void armv7m_nvic_realize(DeviceState *dev, Err= or **errp) /* include space for internal exception vectors */ s->num_irq +=3D NVIC_FIRST_IRQ; =20 - object_property_set_bool(OBJECT(&s->systick), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->systick), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } systick_sbd =3D SYS_BUS_DEVICE(&s->systick); diff --git a/hw/intc/realview_gic.c b/hw/intc/realview_gic.c index 50bbab66ee..1b114e7065 100644 --- a/hw/intc/realview_gic.c +++ b/hw/intc/realview_gic.c @@ -23,7 +23,6 @@ static void realview_gic_realize(DeviceState *dev, Error = **errp) SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); RealViewGICState *s =3D REALVIEW_GIC(dev); SysBusDevice *busdev; - Error *err =3D NULL; /* The GICs on the RealView boards have a fixed nonconfigurable * number of interrupt lines, so we don't need to expose this as * a qdev property. @@ -31,9 +30,8 @@ static void realview_gic_realize(DeviceState *dev, Error = **errp) int numirq =3D 96; =20 qdev_prop_set_uint32(DEVICE(&s->gic), "num-irq", numirq); - object_property_set_bool(OBJECT(&s->gic), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->gic), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } busdev =3D SYS_BUS_DEVICE(&s->gic); diff --git a/hw/ipack/ipack.c b/hw/ipack/ipack.c index 6021e6d135..e380f4f369 100644 --- a/hw/ipack/ipack.c +++ b/hw/ipack/ipack.c @@ -60,11 +60,9 @@ static void ipack_device_unrealize(DeviceState *dev, Err= or **errp) { IPackDevice *idev =3D IPACK_DEVICE(dev); IPackDeviceClass *k =3D IPACK_DEVICE_GET_CLASS(dev); - Error *err =3D NULL; =20 if (k->unrealize) { - k->unrealize(dev, &err); - error_propagate(errp, err); + k->unrealize(dev, errp); return; } =20 diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 6367d041f0..a68342bd0e 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -463,7 +463,6 @@ static void setup_interrupt(IVShmemState *s, int vector= , Error **errp) bool with_irqfd =3D kvm_msi_via_irqfd_enabled() && ivshmem_has_feature(s, IVSHMEM_MSI); PCIDevice *pdev =3D PCI_DEVICE(s); - Error *err =3D NULL; =20 IVSHMEM_DPRINTF("setting up interrupt for vector: %d\n", vector); =20 @@ -472,9 +471,8 @@ static void setup_interrupt(IVShmemState *s, int vector= , Error **errp) watch_vector_notifier(s, n, vector); } else if (msix_enabled(pdev)) { IVSHMEM_DPRINTF("with irqfd\n"); - ivshmem_add_kvm_msi_virq(s, vector, &err); - if (err) { - error_propagate(errp, err); + ivshmem_add_kvm_msi_virq(s, vector, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -836,11 +834,9 @@ static void ivshmem_write_config(PCIDevice *pdev, uint= 32_t address, static void ivshmem_common_realize(PCIDevice *dev, Error **errp) { IVShmemState *s =3D IVSHMEM_COMMON(dev); - Error *err =3D NULL; uint8_t *pci_conf; uint8_t attr =3D PCI_BASE_ADDRESS_SPACE_MEMORY | PCI_BASE_ADDRESS_MEM_PREFETCH; - Error *local_err =3D NULL; =20 /* IRQFD requires MSI */ if (ivshmem_has_feature(s, IVSHMEM_IOEVENTFD) && @@ -883,9 +879,8 @@ static void ivshmem_common_realize(PCIDevice *dev, Erro= r **errp) * Older versions did it asynchronously, but that creates a * number of entertaining race conditions. */ - ivshmem_recv_setup(s, &err); - if (err) { - error_propagate(errp, err); + ivshmem_recv_setup(s, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -911,9 +906,8 @@ static void ivshmem_common_realize(PCIDevice *dev, Erro= r **errp) if (!ivshmem_is_master(s)) { error_setg(&s->migration_blocker, "Migration is disabled when using feature 'peer mode' i= n device 'ivshmem'"); - migrate_add_blocker(s->migration_blocker, &local_err); - if (local_err) { - error_propagate(errp, local_err); + migrate_add_blocker(s->migration_blocker, errp); + if (ERR_IS_SET(errp)) { error_free(s->migration_blocker); return; } diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c index fed0c6b269..c5945b81f7 100644 --- a/hw/misc/macio/macio.c +++ b/hw/misc/macio/macio.c @@ -126,15 +126,13 @@ static void macio_common_realize(PCIDevice *d, Error = **errp) { MacIOState *s =3D MACIO(d); SysBusDevice *sysbus_dev; - Error *err =3D NULL; MemoryRegion *dbdma_mem; =20 s->dbdma =3D DBDMA_init(&dbdma_mem); memory_region_add_subregion(&s->bar, 0x08000, dbdma_mem); =20 - object_property_set_bool(OBJECT(&s->cuda), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&s->cuda), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_dev =3D SYS_BUS_DEVICE(&s->cuda); @@ -162,23 +160,20 @@ static void macio_oldworld_realize(PCIDevice *d, Erro= r **errp) { MacIOState *s =3D MACIO(d); OldWorldMacIOState *os =3D OLDWORLD_MACIO(d); - Error *err =3D NULL; SysBusDevice *sysbus_dev; int i; int cur_irq =3D 0; =20 - macio_common_realize(d, &err); - if (err) { - error_propagate(errp, err); + macio_common_realize(d, errp); + if (ERR_IS_SET(errp)) { return; } =20 sysbus_dev =3D SYS_BUS_DEVICE(&s->cuda); sysbus_connect_irq(sysbus_dev, 0, os->irqs[cur_irq++]); =20 - object_property_set_bool(OBJECT(&os->nvram), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(&os->nvram), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } sysbus_dev =3D SYS_BUS_DEVICE(&os->nvram); @@ -196,9 +191,8 @@ static void macio_oldworld_realize(PCIDevice *d, Error = **errp) qemu_irq irq0 =3D os->irqs[cur_irq++]; qemu_irq irq1 =3D os->irqs[cur_irq++]; =20 - macio_realize_ide(s, &os->ide[i], irq0, irq1, 0x16 + (i * 4), &err= ); - if (err) { - error_propagate(errp, err); + macio_realize_ide(s, &os->ide[i], irq0, irq1, 0x16 + (i * 4), errp= ); + if (ERR_IS_SET(errp)) { return; } } @@ -273,15 +267,13 @@ static void macio_newworld_realize(PCIDevice *d, Erro= r **errp) { MacIOState *s =3D MACIO(d); NewWorldMacIOState *ns =3D NEWWORLD_MACIO(d); - Error *err =3D NULL; SysBusDevice *sysbus_dev; MemoryRegion *timer_memory =3D NULL; int i; int cur_irq =3D 0; =20 - macio_common_realize(d, &err); - if (err) { - error_propagate(errp, err); + macio_common_realize(d, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -298,9 +290,8 @@ static void macio_newworld_realize(PCIDevice *d, Error = **errp) qemu_irq irq0 =3D ns->irqs[cur_irq++]; qemu_irq irq1 =3D ns->irqs[cur_irq++]; =20 - macio_realize_ide(s, &ns->ide[i], irq0, irq1, 0x16 + (i * 4), &err= ); - if (err) { - error_propagate(errp, err); + macio_realize_ide(s, &ns->ide[i], irq0, irq1, 0x16 + (i * 4), errp= ); + if (ERR_IS_SET(errp)) { return; } } diff --git a/hw/misc/tmp105.c b/hw/misc/tmp105.c index 82a25b91f4..1b0584d14b 100644 --- a/hw/misc/tmp105.c +++ b/hw/misc/tmp105.c @@ -70,12 +70,10 @@ static void tmp105_set_temperature(Object *obj, Visitor= *v, const char *name, void *opaque, Error **errp) { TMP105State *s =3D TMP105(obj); - Error *local_err =3D NULL; int64_t temp; =20 - visit_type_int(v, name, &temp, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &temp, errp); + if (ERR_IS_SET(errp)) { return; } if (temp >=3D 128000 || temp < -128000) { diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c index b53fcaa8bc..5142003d07 100644 --- a/hw/net/dp8393x.c +++ b/hw/net/dp8393x.c @@ -874,7 +874,6 @@ static void dp8393x_realize(DeviceState *dev, Error **e= rrp) dp8393xState *s =3D DP8393X(dev); int i, checksum; uint8_t *prom; - Error *local_err =3D NULL; =20 address_space_init(&s->as, s->dma_mr, "dp8393x"); memory_region_init_io(&s->mmio, OBJECT(dev), &dp8393x_ops, s, @@ -888,9 +887,8 @@ static void dp8393x_realize(DeviceState *dev, Error **e= rrp) s->regs[SONIC_SR] =3D 0x0004; /* only revision recognized by Linux */ =20 memory_region_init_ram(&s->prom, OBJECT(dev), - "dp8393x-prom", SONIC_PROM_SIZE, &local_err); - if (local_err) { - error_propagate(errp, local_err); + "dp8393x-prom", SONIC_PROM_SIZE, errp); + if (ERR_IS_SET(errp)) { return; } memory_region_set_readonly(&s->prom, true); diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 44da2caf51..43118044f1 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -1073,11 +1073,9 @@ static void fw_cfg_io_realize(DeviceState *dev, Erro= r **errp) { FWCfgIoState *s =3D FW_CFG_IO(dev); SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); - Error *local_err =3D NULL; =20 - fw_cfg_file_slots_allocate(FW_CFG(s), &local_err); - if (local_err) { - error_propagate(errp, local_err); + fw_cfg_file_slots_allocate(FW_CFG(s), errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1126,11 +1124,9 @@ static void fw_cfg_mem_realize(DeviceState *dev, Err= or **errp) FWCfgMemState *s =3D FW_CFG_MEM(dev); SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); const MemoryRegionOps *data_ops =3D &fw_cfg_data_mem_ops; - Error *local_err =3D NULL; =20 - fw_cfg_file_slots_allocate(FW_CFG(s), &local_err); - if (local_err) { - error_propagate(errp, local_err); + fw_cfg_file_slots_allocate(FW_CFG(s), errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/pci-bridge/pci_expander_bridge.c b/hw/pci-bridge/pci_expand= er_bridge.c index ff59abf208..54132c52ad 100644 --- a/hw/pci-bridge/pci_expander_bridge.c +++ b/hw/pci-bridge/pci_expander_bridge.c @@ -216,7 +216,6 @@ static void pxb_dev_realize_common(PCIDevice *dev, bool= pcie, Error **errp) DeviceState *ds, *bds =3D NULL; PCIBus *bus; const char *dev_name =3D NULL; - Error *local_err =3D NULL; =20 if (pxb->numa_node !=3D NUMA_NODE_UNASSIGNED && pxb->numa_node >=3D nb_numa_nodes) { @@ -246,9 +245,8 @@ static void pxb_dev_realize_common(PCIDevice *dev, bool= pcie, Error **errp) =20 PCI_HOST_BRIDGE(ds)->bus =3D bus; =20 - pxb_register_bus(dev, bus, &local_err); - if (local_err) { - error_propagate(errp, local_err); + pxb_register_bus(dev, bus, errp); + if (ERR_IS_SET(errp)) { goto err_register_bus; } =20 diff --git a/hw/pci/pci.c b/hw/pci/pci.c index a848d1508b..4e25eee0ad 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -960,7 +960,6 @@ static PCIDevice *do_pci_register_device(PCIDevice *pci= _dev, PCIBus *bus, PCIDeviceClass *pc =3D PCI_DEVICE_GET_CLASS(pci_dev); PCIConfigReadFunc *config_read =3D pc->config_read; PCIConfigWriteFunc *config_write =3D pc->config_write; - Error *local_err =3D NULL; DeviceState *dev =3D DEVICE(pci_dev); =20 pci_dev->bus =3D bus; @@ -1039,9 +1038,8 @@ static PCIDevice *do_pci_register_device(PCIDevice *p= ci_dev, PCIBus *bus, if (pc->is_bridge) { pci_init_mask_bridge(pci_dev); } - pci_init_multifunction(bus, pci_dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + pci_init_multifunction(bus, pci_dev, errp); + if (ERR_IS_SET(errp)) { do_pci_unregister_device(pci_dev); return NULL; } @@ -1983,7 +1981,6 @@ static void pci_qdev_realize(DeviceState *qdev, Error= **errp) { PCIDevice *pci_dev =3D (PCIDevice *)qdev; PCIDeviceClass *pc =3D PCI_DEVICE_GET_CLASS(pci_dev); - Error *local_err =3D NULL; PCIBus *bus; bool is_default_rom; =20 @@ -2000,9 +1997,8 @@ static void pci_qdev_realize(DeviceState *qdev, Error= **errp) return; =20 if (pc->realize) { - pc->realize(pci_dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + pc->realize(pci_dev, errp); + if (ERR_IS_SET(errp)) { do_pci_unregister_device(pci_dev); return; } @@ -2015,9 +2011,8 @@ static void pci_qdev_realize(DeviceState *qdev, Error= **errp) is_default_rom =3D true; } =20 - pci_add_option_rom(pci_dev, is_default_rom, &local_err); - if (local_err) { - error_propagate(errp, local_err); + pci_add_option_rom(pci_dev, is_default_rom, errp); + if (ERR_IS_SET(errp)) { pci_qdev_unrealize(DEVICE(pci_dev), IGNORE_ERRORS); return; } diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c index 844bc97737..f3ea297a4d 100644 --- a/hw/pci/shpc.c +++ b/hw/pci/shpc.c @@ -508,14 +508,12 @@ static void shpc_device_hotplug_common(PCIDevice *aff= ected_dev, int *slot, void shpc_device_hotplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { - Error *local_err =3D NULL; PCIDevice *pci_hotplug_dev =3D PCI_DEVICE(hotplug_dev); SHPCDevice *shpc =3D pci_hotplug_dev->shpc; int slot; =20 - shpc_device_hotplug_common(PCI_DEVICE(dev), &slot, shpc, &local_err); - if (local_err) { - error_propagate(errp, local_err); + shpc_device_hotplug_common(PCI_DEVICE(dev), &slot, shpc, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -551,16 +549,14 @@ void shpc_device_hotplug_cb(HotplugHandler *hotplug_d= ev, DeviceState *dev, void shpc_device_hot_unplug_request_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { - Error *local_err =3D NULL; PCIDevice *pci_hotplug_dev =3D PCI_DEVICE(hotplug_dev); SHPCDevice *shpc =3D pci_hotplug_dev->shpc; uint8_t state; uint8_t led; int slot; =20 - shpc_device_hotplug_common(PCI_DEVICE(dev), &slot, shpc, &local_err); - if (local_err) { - error_propagate(errp, local_err); + shpc_device_hotplug_common(PCI_DEVICE(dev), &slot, shpc, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 04621d5534..1b9abbb094 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -708,16 +708,14 @@ static DeviceState *ppce500_init_mpic_qemu(PPCE500Par= ams *params, static DeviceState *ppce500_init_mpic_kvm(PPCE500Params *params, qemu_irq **irqs, Error **errp) { - Error *err =3D NULL; DeviceState *dev; CPUState *cs; =20 dev =3D qdev_create(NULL, TYPE_KVM_OPENPIC); qdev_prop_set_uint32(dev, "model", params->mpic_version); =20 - object_property_set_bool(OBJECT(dev), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(dev), true, "realized", errp); + if (ERR_IS_SET(errp)) { object_unparent(OBJECT(dev)); return NULL; } diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 655f1da14c..0e5236e577 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -885,7 +885,6 @@ static void pnv_chip_icp_realize(PnvChip *chip, Error *= *errp) static void pnv_chip_realize(DeviceState *dev, Error **errp) { PnvChip *chip =3D PNV_CHIP(dev); - Error *error =3D NULL; PnvChipClass *pcc =3D PNV_CHIP_GET_CLASS(chip); char *typename =3D pnv_core_typename(pcc->cpu_model); size_t typesize =3D object_type_get_instance_size(typename); @@ -897,17 +896,15 @@ static void pnv_chip_realize(DeviceState *dev, Error = **errp) } =20 /* XSCOM bridge */ - pnv_xscom_realize(chip, &error); - if (error) { - error_propagate(errp, error); + pnv_xscom_realize(chip, errp); + if (ERR_IS_SET(errp)) { return; } sysbus_mmio_map(SYS_BUS_DEVICE(chip), 0, PNV_XSCOM_BASE(chip)); =20 /* Cores */ - pnv_chip_core_sanitize(chip, &error); - if (error) { - error_propagate(errp, error); + pnv_chip_core_sanitize(chip, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -955,26 +952,23 @@ static void pnv_chip_realize(DeviceState *dev, Error = **errp) =20 /* Interrupt Management Area. This is the memory region holding * all the Interrupt Control Presenter (ICP) registers */ - pnv_chip_icp_realize(chip, &error); - if (error) { - error_propagate(errp, error); + pnv_chip_icp_realize(chip, errp); + if (ERR_IS_SET(errp)) { return; } =20 /* Processor Service Interface (PSI) Host Bridge */ object_property_set_int(OBJECT(&chip->psi), PNV_PSIHB_BASE(chip), "bar", &error_fatal); - object_property_set_bool(OBJECT(&chip->psi), true, "realized", &error); - if (error) { - error_propagate(errp, error); + object_property_set_bool(OBJECT(&chip->psi), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } pnv_xscom_add_subregion(chip, PNV_XSCOM_PSIHB_BASE, &chip->psi.xscom_r= egs); =20 /* Create the simplified OCC model */ - object_property_set_bool(OBJECT(&chip->occ), true, "realized", &error); - if (error) { - error_propagate(errp, error); + object_property_set_bool(OBJECT(&chip->occ), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } pnv_xscom_add_subregion(chip, PNV_XSCOM_OCC_BASE, &chip->occ.xscom_reg= s); @@ -1083,11 +1077,9 @@ static void pnv_set_num_chips(Object *obj, Visitor *= v, const char *name, { PnvMachineState *pnv =3D POWERNV_MACHINE(obj); uint32_t num_chips; - Error *local_err =3D NULL; =20 - visit_type_uint32(v, name, &num_chips, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_uint32(v, name, &num_chips, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c index 161f7dbc62..24d132cc3e 100644 --- a/hw/ppc/pnv_core.c +++ b/hw/ppc/pnv_core.c @@ -113,7 +113,6 @@ static const MemoryRegionOps pnv_core_xscom_ops =3D { =20 static void pnv_core_realize_child(Object *child, XICSFabric *xi, Error **= errp) { - Error *local_err =3D NULL; CPUState *cs =3D CPU(child); PowerPCCPU *cpu =3D POWERPC_CPU(cs); Object *obj; @@ -121,23 +120,20 @@ static void pnv_core_realize_child(Object *child, XIC= SFabric *xi, Error **errp) obj =3D object_new(TYPE_PNV_ICP); object_property_add_child(OBJECT(cpu), "icp", obj, IGNORE_ERRORS); object_property_add_const_link(obj, "xics", OBJECT(xi), &error_abort); - object_property_set_bool(obj, true, "realized", &local_err); - if (local_err) { - error_propagate(errp, local_err); + object_property_set_bool(obj, true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 - object_property_set_bool(child, true, "realized", &local_err); - if (local_err) { + object_property_set_bool(child, true, "realized", errp); + if (ERR_IS_SET(errp)) { object_unparent(obj); - error_propagate(errp, local_err); return; } =20 - powernv_cpu_init(cpu, &local_err); - if (local_err) { + powernv_cpu_init(cpu, errp); + if (ERR_IS_SET(errp)) { object_unparent(obj); - error_propagate(errp, local_err); return; } =20 diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index af33297e0f..f39fd1e06f 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2823,7 +2823,6 @@ void spapr_core_unplug_request(HotplugHandler *hotplu= g_dev, DeviceState *dev, int index; sPAPRDRConnector *drc; sPAPRDRConnectorClass *drck; - Error *local_err =3D NULL; CPUCore *cc =3D CPU_CORE(dev); int smt =3D kvmppc_smt_threads(); =20 @@ -2841,9 +2840,8 @@ void spapr_core_unplug_request(HotplugHandler *hotplu= g_dev, DeviceState *dev, g_assert(drc); =20 drck =3D SPAPR_DR_CONNECTOR_GET_CLASS(drc); - drck->detach(drc, dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + drck->detach(drc, dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -2859,7 +2857,6 @@ static void spapr_core_plug(HotplugHandler *hotplug_d= ev, DeviceState *dev, CPUCore *cc =3D CPU_CORE(dev); CPUState *cs =3D CPU(core->threads); sPAPRDRConnector *drc; - Error *local_err =3D NULL; void *fdt =3D NULL; int fdt_offset =3D 0; int smt =3D kvmppc_smt_threads(); @@ -2886,10 +2883,9 @@ static void spapr_core_plug(HotplugHandler *hotplug_= dev, DeviceState *dev, =20 if (drc) { sPAPRDRConnectorClass *drck =3D SPAPR_DR_CONNECTOR_GET_CLASS(drc); - drck->attach(drc, dev, fdt, fdt_offset, !dev->hotplugged, &local_e= rr); - if (local_err) { + drck->attach(drc, dev, fdt, fdt_offset, !dev->hotplugged, errp); + if (ERR_IS_SET(errp)) { g_free(fdt); - error_propagate(errp, local_err); return; } } diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 1b0a7546fb..867fe9cd84 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -239,7 +239,6 @@ static void prop_get_fdt(Object *obj, Visitor *v, const= char *name, void *opaque, Error **errp) { sPAPRDRConnector *drc =3D SPAPR_DR_CONNECTOR(obj); - Error *err =3D NULL; int fdt_offset_next, fdt_offset, fdt_depth; void *fdt; =20 @@ -263,19 +262,17 @@ static void prop_get_fdt(Object *obj, Visitor *v, con= st char *name, case FDT_BEGIN_NODE: fdt_depth++; name =3D fdt_get_name(fdt, fdt_offset, &name_len); - visit_start_struct(v, name, NULL, 0, &err); - if (err) { - error_propagate(errp, err); + visit_start_struct(v, name, NULL, 0, errp); + if (ERR_IS_SET(errp)) { return; } break; case FDT_END_NODE: /* shouldn't ever see an FDT_END_NODE before FDT_BEGIN_NODE */ g_assert(fdt_depth > 0); - visit_check_struct(v, &err); + visit_check_struct(v, errp); visit_end_struct(v, NULL); - if (err) { - error_propagate(errp, err); + if (ERR_IS_SET(errp)) { return; } fdt_depth--; @@ -284,22 +281,19 @@ static void prop_get_fdt(Object *obj, Visitor *v, con= st char *name, int i; prop =3D fdt_get_property_by_offset(fdt, fdt_offset, &prop_len= ); name =3D fdt_string(fdt, fdt32_to_cpu(prop->nameoff)); - visit_start_list(v, name, NULL, 0, &err); - if (err) { - error_propagate(errp, err); + visit_start_list(v, name, NULL, 0, errp); + if (ERR_IS_SET(errp)) { return; } for (i =3D 0; i < prop_len; i++) { - visit_type_uint8(v, NULL, (uint8_t *)&prop->data[i], &err); - if (err) { - error_propagate(errp, err); + visit_type_uint8(v, NULL, (uint8_t *)&prop->data[i], errp); + if (ERR_IS_SET(errp)) { return; } } - visit_check_list(v, &err); + visit_check_list(v, errp); visit_end_list(v, NULL); - if (err) { - error_propagate(errp, err); + if (ERR_IS_SET(errp)) { return; } break; diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index 5b3660b674..03eff2f67c 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -1429,7 +1429,6 @@ static void spapr_phb_hot_plug_child(HotplugHandler *= plug_handler, sPAPRPHBState *phb =3D SPAPR_PCI_HOST_BRIDGE(DEVICE(plug_handler)); PCIDevice *pdev =3D PCI_DEVICE(plugged_dev); sPAPRDRConnector *drc =3D spapr_phb_get_pci_drc(phb, pdev); - Error *local_err =3D NULL; PCIBus *bus =3D PCI_BUS(qdev_get_parent_bus(DEVICE(pdev))); uint32_t slotnr =3D PCI_SLOT(pdev->devfn); =20 @@ -1461,9 +1460,8 @@ static void spapr_phb_hot_plug_child(HotplugHandler *= plug_handler, return; } =20 - spapr_phb_add_pci_device(drc, phb, pdev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + spapr_phb_add_pci_device(drc, phb, pdev, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1497,7 +1495,6 @@ static void spapr_phb_hot_unplug_child(HotplugHandler= *plug_handler, PCIDevice *pdev =3D PCI_DEVICE(plugged_dev); sPAPRDRConnectorClass *drck; sPAPRDRConnector *drc =3D spapr_phb_get_pci_drc(phb, pdev); - Error *local_err =3D NULL; =20 if (!phb->dr_enabled) { error_setg(errp, QERR_BUS_NO_HOTPLUG, @@ -1534,9 +1531,8 @@ static void spapr_phb_hot_unplug_child(HotplugHandler= *plug_handler, } } =20 - spapr_phb_remove_pci_device(drc, phb, pdev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + spapr_phb_remove_pci_device(drc, phb, pdev, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/s390x/css-bridge.c b/hw/s390x/css-bridge.c index 823747fcd7..49e20a5786 100644 --- a/hw/s390x/css-bridge.c +++ b/hw/s390x/css-bridge.c @@ -30,12 +30,10 @@ static void ccw_device_unplug(HotplugHandler *hotplug_d= ev, CcwDevice *ccw_dev =3D CCW_DEVICE(dev); CCWDeviceClass *k =3D CCW_DEVICE_GET_CLASS(ccw_dev); SubchDev *sch =3D ccw_dev->sch; - Error *err =3D NULL; =20 if (k->unplug) { - k->unplug(hotplug_dev, dev, &err); - if (err) { - error_propagate(errp, err); + k->unplug(hotplug_dev, dev, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/hw/s390x/css.c b/hw/s390x/css.c index c39e65f206..cf3a3fa70a 100644 --- a/hw/s390x/css.c +++ b/hw/s390x/css.c @@ -1974,7 +1974,6 @@ static void set_css_devid(Object *obj, Visitor *v, co= nst char *name, DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; CssDevId *dev_id =3D qdev_get_prop_ptr(dev, prop); - Error *local_err =3D NULL; char *str; int num, n1, n2; unsigned int cssid, ssid, devid; @@ -1984,9 +1983,8 @@ static void set_css_devid(Object *obj, Visitor *v, co= nst char *name, return; } =20 - visit_type_str(v, name, &str, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &str, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 9c56e17196..5cace901e0 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -901,12 +901,10 @@ static void virtio_ccw_rng_realize(VirtioCcwDevice *c= cw_dev, Error **errp) { VirtIORNGCcw *dev =3D VIRTIO_RNG_CCW(ccw_dev); DeviceState *vdev =3D DEVICE(&dev->vdev); - Error *err =3D NULL; =20 qdev_set_parent_bus(vdev, BUS(&ccw_dev->bus)); - object_property_set_bool(OBJECT(vdev), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(vdev), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -919,12 +917,10 @@ static void virtio_ccw_crypto_realize(VirtioCcwDevice= *ccw_dev, Error **errp) { VirtIOCryptoCcw *dev =3D VIRTIO_CRYPTO_CCW(ccw_dev); DeviceState *vdev =3D DEVICE(&dev->vdev); - Error *err =3D NULL; =20 qdev_set_parent_bus(vdev, BUS(&ccw_dev->bus)); - object_property_set_bool(OBJECT(vdev), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(vdev), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1762,11 +1758,9 @@ static void vhost_vsock_ccw_realize(VirtioCcwDevice = *ccw_dev, Error **errp) { VHostVSockCCWState *dev =3D VHOST_VSOCK_CCW(ccw_dev); DeviceState *vdev =3D DEVICE(&dev->vdev); - Error *err =3D NULL; =20 qdev_set_parent_bus(vdev, BUS(&ccw_dev->bus)); - object_property_set_bool(OBJECT(vdev), true, "realized", &err); - error_propagate(errp, err); + object_property_set_bool(OBJECT(vdev), true, "realized", errp); } =20 static void vhost_vsock_ccw_class_init(ObjectClass *klass, void *data) diff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c index e295d88939..30f866d5a0 100644 --- a/hw/scsi/esp-pci.c +++ b/hw/scsi/esp-pci.c @@ -462,15 +462,13 @@ static void dc390_write_config(PCIDevice *dev, static void dc390_scsi_realize(PCIDevice *dev, Error **errp) { DC390State *pci =3D DC390(dev); - Error *err =3D NULL; uint8_t *contents; uint16_t chksum =3D 0; int i; =20 /* init base class */ - esp_pci_scsi_realize(dev, &err); - if (err) { - error_propagate(errp, err); + esp_pci_scsi_realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 796ae562bf..bb9f5628db 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -152,7 +152,6 @@ static void scsi_qdev_realize(DeviceState *qdev, Error = **errp) SCSIDevice *dev =3D SCSI_DEVICE(qdev); SCSIBus *bus =3D DO_UPCAST(SCSIBus, qbus, dev->qdev.parent_bus); SCSIDevice *d; - Error *local_err =3D NULL; =20 if (dev->channel > bus->info->max_channel) { error_setg(errp, "bad scsi channel id: %d", dev->channel); @@ -200,9 +199,8 @@ static void scsi_qdev_realize(DeviceState *qdev, Error = **errp) } =20 QTAILQ_INIT(&dev->requests); - scsi_device_realize(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + scsi_device_realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } dev->vmsentry =3D qemu_add_vm_change_state_handler(scsi_dma_restart_cb, @@ -229,7 +227,6 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, Blo= ckBackend *blk, const char *driver; char *name; DeviceState *dev; - Error *err =3D NULL; =20 driver =3D blk_is_sg(blk) ? "scsi-generic" : "scsi-disk"; dev =3D qdev_create(&bus->qbus, driver); @@ -248,15 +245,13 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, B= lockBackend *blk, if (serial && object_property_find(OBJECT(dev), "serial", IGNORE_ERROR= S)) { qdev_prop_set_string(dev, "serial", serial); } - qdev_prop_set_drive(dev, "drive", blk, &err); - if (err) { - error_propagate(errp, err); + qdev_prop_set_drive(dev, "drive", blk, errp); + if (ERR_IS_SET(errp)) { object_unparent(OBJECT(dev)); return NULL; } - object_property_set_bool(OBJECT(dev), true, "realized", &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(dev), true, "realized", errp); + if (ERR_IS_SET(errp)) { object_unparent(OBJECT(dev)); return NULL; } diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index a53f058621..d5c984504b 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -2306,7 +2306,6 @@ static void scsi_disk_unit_attention_reported(SCSIDev= ice *dev) static void scsi_realize(SCSIDevice *dev, Error **errp) { SCSIDiskState *s =3D DO_UPCAST(SCSIDiskState, qdev, dev); - Error *err =3D NULL; =20 if (!s->qdev.conf.blk) { error_setg(errp, "drive property not set"); @@ -2322,17 +2321,15 @@ static void scsi_realize(SCSIDevice *dev, Error **e= rrp) blkconf_serial(&s->qdev.conf, &s->serial); blkconf_blocksizes(&s->qdev.conf); if (dev->type =3D=3D TYPE_DISK) { - blkconf_geometry(&dev->conf, NULL, 65535, 255, 255, &err); - if (err) { - error_propagate(errp, err); + blkconf_geometry(&dev->conf, NULL, 65535, 255, 255, errp); + if (ERR_IS_SET(errp)) { return; } } blkconf_apply_backend_options(&dev->conf, blk_is_read_only(s->qdev.conf.blk), - dev->type =3D=3D TYPE_DISK, &err); - if (err) { - error_propagate(errp, err); + dev->type =3D=3D TYPE_DISK, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index c44d1045b6..dea479b7ba 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -139,7 +139,6 @@ static void vhost_scsi_realize(DeviceState *dev, Error = **errp) { VirtIOSCSICommon *vs =3D VIRTIO_SCSI_COMMON(dev); VHostSCSICommon *vsc =3D VHOST_SCSI_COMMON(dev); - Error *err =3D NULL; int vhostfd =3D -1; int ret; =20 @@ -167,17 +166,15 @@ static void vhost_scsi_realize(DeviceState *dev, Erro= r **errp) vhost_dummy_handle_output, vhost_dummy_handle_output, vhost_dummy_handle_output, - &err); - if (err !=3D NULL) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { goto close_fd; } =20 error_setg(&vsc->migration_blocker, "vhost-scsi does not support migration"); - migrate_add_blocker(vsc->migration_blocker, &err); - if (err) { - error_propagate(errp, err); + migrate_add_blocker(vsc->migration_blocker, errp); + if (ERR_IS_SET(errp)) { error_free(vsc->migration_blocker); goto close_fd; } diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index f46f06d055..a253b5df59 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -877,15 +877,13 @@ static void virtio_scsi_device_realize(DeviceState *d= ev, Error **errp) { VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtIOSCSI *s =3D VIRTIO_SCSI(dev); - Error *err =3D NULL; =20 virtio_scsi_common_realize(dev, virtio_scsi_handle_ctrl, virtio_scsi_handle_event, virtio_scsi_handle_cmd, - &err); - if (err !=3D NULL) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/usb/bus.c b/hw/usb/bus.c index c25247e3cb..9c747821d2 100644 --- a/hw/usb/bus.c +++ b/hw/usb/bus.c @@ -246,7 +246,6 @@ void usb_device_free_streams(USBDevice *dev, USBEndpoin= t **eps, int nr_eps) static void usb_qdev_realize(DeviceState *qdev, Error **errp) { USBDevice *dev =3D USB_DEVICE(qdev); - Error *local_err =3D NULL; =20 pstrcpy(dev->product_desc, sizeof(dev->product_desc), usb_device_get_product_desc(dev)); @@ -254,24 +253,21 @@ static void usb_qdev_realize(DeviceState *qdev, Error= **errp) QLIST_INIT(&dev->strings); usb_ep_init(dev); =20 - usb_claim_port(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + usb_claim_port(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 - usb_device_realize(dev, &local_err); - if (local_err) { + usb_device_realize(dev, errp); + if (ERR_IS_SET(errp)) { usb_release_port(dev); - error_propagate(errp, local_err); return; } =20 if (dev->auto_attach) { - usb_device_attach(dev, &local_err); - if (local_err) { + usb_device_attach(dev, errp); + if (ERR_IS_SET(errp)) { usb_qdev_unrealize(qdev, IGNORE_ERRORS); - error_propagate(errp, local_err); return; } } @@ -330,7 +326,6 @@ USBDevice *usb_create(USBBus *bus, const char *name) static USBDevice *usb_try_create_simple(USBBus *bus, const char *name, Error **errp) { - Error *err =3D NULL; USBDevice *dev; =20 dev =3D USB_DEVICE(qdev_try_create(&bus->qbus, name)); @@ -338,9 +333,8 @@ static USBDevice *usb_try_create_simple(USBBus *bus, co= nst char *name, error_setg(errp, "Failed to create USB device '%s'", name); return NULL; } - object_property_set_bool(OBJECT(dev), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(dev), true, "realized", errp); + if (ERR_IS_SET(errp)) { error_prepend(errp, "Failed to initialize USB device '%s': ", name); object_unparent(OBJECT(dev)); @@ -533,11 +527,9 @@ void usb_check_attach(USBDevice *dev, Error **errp) void usb_device_attach(USBDevice *dev, Error **errp) { USBPort *port =3D dev->port; - Error *local_err =3D NULL; =20 - usb_check_attach(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + usb_check_attach(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -754,15 +746,13 @@ static bool usb_get_attached(Object *obj, Error **err= p) static void usb_set_attached(Object *obj, bool value, Error **errp) { USBDevice *dev =3D USB_DEVICE(obj); - Error *err =3D NULL; =20 if (dev->attached =3D=3D value) { return; } =20 if (value) { - usb_device_attach(dev, &err); - error_propagate(errp, err); + usb_device_attach(dev, errp); } else { usb_device_detach(dev); } diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index bfbf7cdce7..cc9dd8b533 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -483,7 +483,6 @@ static void usb_serial_event(void *opaque, int event) static void usb_serial_realize(USBDevice *dev, Error **errp) { USBSerialState *s =3D USB_SERIAL_DEV(dev); - Error *local_err =3D NULL; Chardev *chr =3D qemu_chr_fe_get_driver(&s->cs); =20 usb_desc_create_serial(dev); @@ -495,9 +494,8 @@ static void usb_serial_realize(USBDevice *dev, Error **= errp) return; } =20 - usb_check_attach(dev, &local_err); - if (local_err) { - error_propagate(errp, local_err); + usb_check_attach(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c index 3ada35e954..2c221d23be 100644 --- a/hw/usb/hcd-ohci.c +++ b/hw/usb/hcd-ohci.c @@ -1850,7 +1850,6 @@ static void usb_ohci_init(OHCIState *ohci, DeviceStat= e *dev, char *masterbus, uint32_t firstport, AddressSpace *as, Error **errp) { - Error *err =3D NULL; int i; =20 ohci->as =3D as; @@ -1885,9 +1884,8 @@ static void usb_ohci_init(OHCIState *ohci, DeviceStat= e *dev, usb_register_companion(masterbus, ports, num_ports, firstport, ohci, &ohci_port_ops, USB_SPEED_MASK_LOW | USB_SPEED_MASK_FULL, - &err); - if (err) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } } else { @@ -1944,7 +1942,6 @@ static void ohci_die(OHCIState *ohci) =20 static void usb_ohci_realize_pci(PCIDevice *dev, Error **errp) { - Error *err =3D NULL; OHCIPCIState *ohci =3D PCI_OHCI(dev); =20 dev->config[PCI_CLASS_PROG] =3D 0x10; /* OHCI */ @@ -1952,9 +1949,8 @@ static void usb_ohci_realize_pci(PCIDevice *dev, Erro= r **errp) =20 usb_ohci_init(&ohci->state, DEVICE(dev), ohci->num_ports, 0, ohci->masterbus, ohci->firstport, - pci_get_address_space(dev), &err); - if (err) { - error_propagate(errp, err); + pci_get_address_space(dev), errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c index ca72a80f27..b99a4d6429 100644 --- a/hw/usb/hcd-uhci.c +++ b/hw/usb/hcd-uhci.c @@ -1208,7 +1208,6 @@ static USBBusOps uhci_bus_ops =3D { =20 static void usb_uhci_common_realize(PCIDevice *dev, Error **errp) { - Error *err =3D NULL; PCIDeviceClass *pc =3D PCI_DEVICE_GET_CLASS(dev); UHCIPCIDeviceClass *u =3D container_of(pc, UHCIPCIDeviceClass, parent_= class); UHCIState *s =3D UHCI(dev); @@ -1229,9 +1228,8 @@ static void usb_uhci_common_realize(PCIDevice *dev, E= rror **errp) usb_register_companion(s->masterbus, ports, NB_PORTS, s->firstport, s, &uhci_port_ops, USB_SPEED_MASK_LOW | USB_SPEED_MASK_FULL, - &err); - if (err) { - error_propagate(errp, err); + errp); + if (ERR_IS_SET(errp)) { return; } } else { diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 2d3bad68fc..ae34f35a55 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -2615,7 +2615,6 @@ static void vfio_realize(PCIDevice *pdev, Error **err= p) VFIODevice *vbasedev_iter; VFIOGroup *group; char *tmp, group_path[PATH_MAX], *group_name; - Error *err =3D NULL; ssize_t len; struct stat st; int groupid; @@ -2684,9 +2683,8 @@ static void vfio_realize(PCIDevice *pdev, Error **err= p) goto error; } =20 - vfio_populate_device(vdev, &err); - if (err) { - error_propagate(errp, err); + vfio_populate_device(vdev, errp); + if (ERR_IS_SET(errp)) { goto error; } =20 @@ -2775,9 +2773,8 @@ static void vfio_realize(PCIDevice *pdev, Error **err= p) =20 vfio_pci_size_rom(vdev); =20 - vfio_msix_early_setup(vdev, &err); - if (err) { - error_propagate(errp, err); + vfio_msix_early_setup(vdev, errp); + if (ERR_IS_SET(errp)) { goto error; } =20 diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index c2ba3f991b..09ac3b7d12 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -162,12 +162,10 @@ static void balloon_stats_set_poll_interval(Object *o= bj, Visitor *v, Error **errp) { VirtIOBalloon *s =3D opaque; - Error *local_err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index 20b2fef683..d6a8b6be5f 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -2373,12 +2373,10 @@ static void virtio_rng_pci_realize(VirtIOPCIProxy *= vpci_dev, Error **errp) { VirtIORngPCI *vrng =3D VIRTIO_RNG_PCI(vpci_dev); DeviceState *vdev =3D DEVICE(&vrng->vdev); - Error *err =3D NULL; =20 qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus)); - object_property_set_bool(OBJECT(vdev), true, "realized", &err); - if (err) { - error_propagate(errp, err); + object_property_set_bool(OBJECT(vdev), true, "realized", errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c index e564e3b291..964c775e41 100644 --- a/hw/virtio/virtio-rng.c +++ b/hw/virtio/virtio-rng.c @@ -160,7 +160,6 @@ static void virtio_rng_device_realize(DeviceState *dev,= Error **errp) { VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtIORNG *vrng =3D VIRTIO_RNG(dev); - Error *local_err =3D NULL; =20 if (vrng->conf.period_ms <=3D 0) { error_setg(errp, "'period' parameter expects a positive integer"); @@ -179,9 +178,8 @@ static void virtio_rng_device_realize(DeviceState *dev,= Error **errp) vrng->conf.default_backend =3D RNG_RANDOM(object_new(TYPE_RNG_RAND= OM)); =20 user_creatable_complete(OBJECT(vrng->conf.default_backend), - &local_err); - if (local_err) { - error_propagate(errp, local_err); + errp); + if (ERR_IS_SET(errp)) { object_unref(OBJECT(vrng->conf.default_backend)); return; } diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index fd16ff7d9d..530b5e568e 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2477,22 +2477,19 @@ static void virtio_device_realize(DeviceState *dev,= Error **errp) { VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(dev); - Error *err =3D NULL; =20 /* Devices should either use vmsd or the load/save methods */ assert(!vdc->vmsd || !vdc->load); =20 if (vdc->realize !=3D NULL) { - vdc->realize(dev, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + vdc->realize(dev, errp); + if (ERR_IS_SET(errp)) { return; } } =20 - virtio_bus_device_plugged(vdev, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + virtio_bus_device_plugged(vdev, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -2504,14 +2501,12 @@ static void virtio_device_unrealize(DeviceState *de= v, Error **errp) { VirtIODevice *vdev =3D VIRTIO_DEVICE(dev); VirtioDeviceClass *vdc =3D VIRTIO_DEVICE_GET_CLASS(dev); - Error *err =3D NULL; =20 virtio_bus_device_unplugged(vdev); =20 if (vdc->unrealize !=3D NULL) { - vdc->unrealize(dev, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + vdc->unrealize(dev, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/migration/colo.c b/migration/colo.c index a68e6e9cdf..039b8afa03 100644 --- a/migration/colo.c +++ b/migration/colo.c @@ -235,12 +235,10 @@ static void colo_send_message(QEMUFile *f, COLOMessag= e msg, static void colo_send_message_value(QEMUFile *f, COLOMessage msg, uint64_t value, Error **errp) { - Error *local_err =3D NULL; int ret; =20 - colo_send_message(f, msg, &local_err); - if (local_err) { - error_propagate(errp, local_err); + colo_send_message(f, msg, errp); + if (ERR_IS_SET(errp)) { return; } qemu_put_be64(f, value); @@ -292,13 +290,11 @@ static void colo_receive_check_message(QEMUFile *f, C= OLOMessage expect_msg, static uint64_t colo_receive_message_value(QEMUFile *f, uint32_t expect_ms= g, Error **errp) { - Error *local_err =3D NULL; uint64_t value; int ret; =20 - colo_receive_check_message(f, expect_msg, &local_err); - if (local_err) { - error_propagate(errp, local_err); + colo_receive_check_message(f, expect_msg, errp); + if (ERR_IS_SET(errp)) { return 0; } =20 diff --git a/migration/migration.c b/migration/migration.c index ac49c4cac8..16bdd0a8d6 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1151,7 +1151,6 @@ void migrate_del_blocker(Error *reason) =20 void qmp_migrate_incoming(const char *uri, Error **errp) { - Error *local_err =3D NULL; static bool once =3D true; =20 if (!deferred_incoming) { @@ -1162,10 +1161,9 @@ void qmp_migrate_incoming(const char *uri, Error **e= rrp) error_setg(errp, "The incoming migration has already been started"= ); } =20 - qemu_start_incoming_migration(uri, &local_err); + qemu_start_incoming_migration(uri, errp); =20 - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/net/filter.c b/net/filter.c index ee7ab8e443..43af9f3733 100644 --- a/net/filter.c +++ b/net/filter.c @@ -193,7 +193,6 @@ static void netfilter_complete(UserCreatable *uc, Error= **errp) NetClientState *ncs[MAX_QUEUE_NUM]; NetFilterClass *nfc =3D NETFILTER_GET_CLASS(uc); int queues; - Error *local_err =3D NULL; =20 if (!nf->netdev_id) { error_setg(errp, "Parameter 'netdev' is required"); @@ -220,9 +219,8 @@ static void netfilter_complete(UserCreatable *uc, Error= **errp) nf->netdev =3D ncs[0]; =20 if (nfc->setup) { - nfc->setup(nf, &local_err); - if (local_err) { - error_propagate(errp, local_err); + nfc->setup(nf, errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/net/tap.c b/net/tap.c index 979e622e60..70e5dda82a 100644 --- a/net/tap.c +++ b/net/tap.c @@ -605,7 +605,6 @@ static int net_tap_init(const NetdevTapOptions *tap, in= t *vnet_hdr, const char *setup_script, char *ifname, size_t ifname_sz, int mq_required, Error **errp) { - Error *err =3D NULL; int fd, vnet_hdr_required; =20 if (tap->has_vnet_hdr) { @@ -625,9 +624,8 @@ static int net_tap_init(const NetdevTapOptions *tap, in= t *vnet_hdr, if (setup_script && setup_script[0] !=3D '\0' && strcmp(setup_script, "no") !=3D 0) { - launch_script(setup_script, ifname, fd, &err); - if (err) { - error_propagate(errp, err); + launch_script(setup_script, ifname, fd, errp); + if (ERR_IS_SET(errp)) { close(fd); return -1; } diff --git a/qapi/string-input-visitor.c b/qapi/string-input-visitor.c index c089491c24..bb4a21ce0d 100644 --- a/qapi/string-input-visitor.c +++ b/qapi/string-input-visitor.c @@ -266,12 +266,10 @@ static void parse_type_size(Visitor *v, const char *n= ame, uint64_t *obj, Error **errp) { StringInputVisitor *siv =3D to_siv(v); - Error *err =3D NULL; uint64_t val; =20 - parse_option_size(name, siv->string, &val, &err); - if (err) { - error_propagate(errp, err); + parse_option_size(name, siv->string, &val, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/qdev-monitor.c b/qdev-monitor.c index 37302305c5..7a802c6b37 100644 --- a/qdev-monitor.c +++ b/qdev-monitor.c @@ -175,16 +175,14 @@ static int set_property(void *opaque, const char *nam= e, const char *value, Error **errp) { Object *obj =3D opaque; - Error *err =3D NULL; =20 if (strcmp(name, "driver") =3D=3D 0) return 0; if (strcmp(name, "bus") =3D=3D 0) return 0; =20 - object_property_parse(obj, value, name, &err); - if (err !=3D NULL) { - error_propagate(errp, err); + object_property_parse(obj, value, name, errp); + if (ERR_IS_SET(errp)) { return -1; } return 0; diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 623a32a7d8..6d3476477f 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -72,7 +72,6 @@ static void ga_wait_child(pid_t pid, int *status, Error *= *errp) void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) { const char *shutdown_flag; - Error *local_err =3D NULL; pid_t pid; int status; =20 @@ -105,9 +104,8 @@ void qmp_guest_shutdown(bool has_mode, const char *mode= , Error **errp) return; } =20 - ga_wait_child(pid, &status, &local_err); - if (local_err) { - error_propagate(errp, local_err); + ga_wait_child(pid, &status, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -143,7 +141,6 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns,= Error **errp) int ret; int status; pid_t pid; - Error *local_err =3D NULL; struct timeval tv; =20 /* If user has passed a time, validate and set it. */ @@ -192,9 +189,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns,= Error **errp) return; } =20 - ga_wait_child(pid, &status, &local_err); - if (local_err) { - error_propagate(errp, local_err); + ga_wait_child(pid, &status, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1201,21 +1197,18 @@ int64_t qmp_guest_fsfreeze_freeze_list(bool has_mou= ntpoints, strList *list; FsMountList mounts; struct FsMount *mount; - Error *local_err =3D NULL; int fd; =20 slog("guest-fsfreeze called"); =20 - execute_fsfreeze_hook(FSFREEZE_HOOK_FREEZE, &local_err); - if (local_err) { - error_propagate(errp, local_err); + execute_fsfreeze_hook(FSFREEZE_HOOK_FREEZE, errp); + if (ERR_IS_SET(errp)) { return -1; } =20 QTAILQ_INIT(&mounts); - build_fs_mount_list(&mounts, &local_err); - if (local_err) { - error_propagate(errp, local_err); + build_fs_mount_list(&mounts, errp); + if (ERR_IS_SET(errp)) { return -1; } =20 @@ -1286,12 +1279,10 @@ int64_t qmp_guest_fsfreeze_thaw(Error **errp) FsMountList mounts; FsMount *mount; int fd, i =3D 0, logged; - Error *local_err =3D NULL; =20 QTAILQ_INIT(&mounts); - build_fs_mount_list(&mounts, &local_err); - if (local_err) { - error_propagate(errp, local_err); + build_fs_mount_list(&mounts, errp); + if (ERR_IS_SET(errp)) { return 0; } =20 @@ -1364,15 +1355,13 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum,= Error **errp) FsMountList mounts; struct FsMount *mount; int fd; - Error *local_err =3D NULL; struct fstrim_range r; =20 slog("guest-fstrim called"); =20 QTAILQ_INIT(&mounts); - build_fs_mount_list(&mounts, &local_err); - if (local_err) { - error_propagate(errp, local_err); + build_fs_mount_list(&mounts, errp); + if (ERR_IS_SET(errp)) { return NULL; } =20 @@ -1437,7 +1426,6 @@ qmp_guest_fstrim(bool has_minimum, int64_t minimum, E= rror **errp) static void bios_supports_mode(const char *pmutils_bin, const char *pmutil= s_arg, const char *sysfile_str, Error **errp) { - Error *local_err =3D NULL; char *pmutils_path; pid_t pid; int status; @@ -1489,9 +1477,8 @@ static void bios_supports_mode(const char *pmutils_bi= n, const char *pmutils_arg, goto out; } =20 - ga_wait_child(pid, &status, &local_err); - if (local_err) { - error_propagate(errp, local_err); + ga_wait_child(pid, &status, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -1521,7 +1508,6 @@ out: static void guest_suspend(const char *pmutils_bin, const char *sysfile_str, Error **errp) { - Error *local_err =3D NULL; char *pmutils_path; pid_t pid; int status; @@ -1566,9 +1552,8 @@ static void guest_suspend(const char *pmutils_bin, co= nst char *sysfile_str, goto out; } =20 - ga_wait_child(pid, &status, &local_err); - if (local_err) { - error_propagate(errp, local_err); + ga_wait_child(pid, &status, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -1588,11 +1573,8 @@ out: =20 void qmp_guest_suspend_disk(Error **errp) { - Error *local_err =3D NULL; - - bios_supports_mode("pm-is-supported", "--hibernate", "disk", &local_er= r); - if (local_err) { - error_propagate(errp, local_err); + bios_supports_mode("pm-is-supported", "--hibernate", "disk", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1601,11 +1583,8 @@ void qmp_guest_suspend_disk(Error **errp) =20 void qmp_guest_suspend_ram(Error **errp) { - Error *local_err =3D NULL; - - bios_supports_mode("pm-is-supported", "--suspend", "mem", &local_err); - if (local_err) { - error_propagate(errp, local_err); + bios_supports_mode("pm-is-supported", "--suspend", "mem", errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1614,12 +1593,9 @@ void qmp_guest_suspend_ram(Error **errp) =20 void qmp_guest_suspend_hybrid(Error **errp) { - Error *local_err =3D NULL; - bios_supports_mode("pm-is-supported", "--suspend-hybrid", NULL, - &local_err); - if (local_err) { - error_propagate(errp, local_err); + errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1947,7 +1923,6 @@ void qmp_guest_set_user_password(const char *username, bool crypted, Error **errp) { - Error *local_err =3D NULL; char *passwd_path =3D NULL; pid_t pid; int status; @@ -2019,9 +1994,8 @@ void qmp_guest_set_user_password(const char *username, close(datafd[1]); datafd[1] =3D -1; =20 - ga_wait_child(pid, &status, &local_err); - if (local_err) { - error_propagate(errp, local_err); + ga_wait_child(pid, &status, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -2327,7 +2301,6 @@ err: =20 GuestMemoryBlockInfo *qmp_guest_get_memory_block_info(Error **errp) { - Error *local_err =3D NULL; char *dirpath; int dirfd; char *buf; @@ -2343,11 +2316,10 @@ GuestMemoryBlockInfo *qmp_guest_get_memory_block_in= fo(Error **errp) g_free(dirpath); =20 buf =3D g_malloc0(20); - ga_read_sysfs_file(dirfd, "block_size_bytes", buf, 20, &local_err); + ga_read_sysfs_file(dirfd, "block_size_bytes", buf, 20, errp); close(dirfd); - if (local_err) { + if (ERR_IS_SET(errp)) { g_free(buf); - error_propagate(errp, local_err); return NULL; } =20 diff --git a/qga/commands-win32.c b/qga/commands-win32.c index 439d229225..9f7936eeeb 100644 --- a/qga/commands-win32.c +++ b/qga/commands-win32.c @@ -269,7 +269,6 @@ static void execute_async(DWORD WINAPI (*func)(LPVOID),= LPVOID opaque, =20 void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp) { - Error *local_err =3D NULL; UINT shutdown_flag =3D EWX_FORCE; =20 slog("guest-shutdown called, mode: %s", mode); @@ -288,9 +287,8 @@ void qmp_guest_shutdown(bool has_mode, const char *mode= , Error **errp) =20 /* Request a shutdown privilege, but try to shut down the system anyway. */ - acquire_privilege(SE_SHUTDOWN_NAME, &local_err); - if (local_err) { - error_propagate(errp, local_err); + acquire_privilege(SE_SHUTDOWN_NAME, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -760,7 +758,6 @@ GuestFsfreezeStatus qmp_guest_fsfreeze_status(Error **e= rrp) int64_t qmp_guest_fsfreeze_freeze(Error **errp) { int i; - Error *local_err =3D NULL; =20 if (!vss_initialized()) { error_setg(errp, QERR_UNSUPPORTED); @@ -772,9 +769,8 @@ int64_t qmp_guest_fsfreeze_freeze(Error **errp) /* cannot risk guest agent blocking itself on a write in this state */ ga_set_frozen(ga_state); =20 - qga_vss_fsfreeze(&i, true, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qga_vss_fsfreeze(&i, true, errp); + if (ERR_IS_SET(errp)) { goto error; } =20 @@ -1264,7 +1260,6 @@ int64_t qmp_guest_get_time(Error **errp) =20 void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp) { - Error *local_err =3D NULL; SYSTEMTIME ts; FILETIME tf; LONGLONG time; @@ -1296,9 +1291,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_n= s, Error **errp) return; } =20 - acquire_privilege(SE_SYSTEMTIME_NAME, &local_err); - if (local_err) { - error_propagate(errp, local_err); + acquire_privilege(SE_SYSTEMTIME_NAME, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/qmp.c b/qmp.c index 7ee9bcfdcf..9821343ad4 100644 --- a/qmp.c +++ b/qmp.c @@ -164,7 +164,6 @@ SpiceInfo *qmp_query_spice(Error **errp) =20 void qmp_cont(Error **errp) { - Error *local_err =3D NULL; BlockBackend *blk; BlockDriverState *bs; BdrvNextIterator it; @@ -188,9 +187,8 @@ void qmp_cont(Error **errp) } =20 for (bs =3D bdrv_first(&it); bs; bs =3D bdrv_next(&it)) { - bdrv_add_key(bs, NULL, &local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_add_key(bs, NULL, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -201,9 +199,8 @@ void qmp_cont(Error **errp) * If there are no inactive block nodes (e.g. because the VM was just * paused rather than completing a migration), bdrv_inactivate_all() s= imply * doesn't do anything. */ - bdrv_invalidate_cache_all(&local_err); - if (local_err) { - error_propagate(errp, local_err); + bdrv_invalidate_cache_all(errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/qom/object.c b/qom/object.c index 8b2f2ef8ac..2a0084ea96 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1227,7 +1227,6 @@ typedef struct EnumProperty { int object_property_get_enum(Object *obj, const char *name, const char *typename, Error **errp) { - Error *err =3D NULL; Visitor *v; char *str; int ret; @@ -1248,9 +1247,8 @@ int object_property_get_enum(Object *obj, const char = *name, enumprop =3D prop->opaque; =20 v =3D string_output_visitor_new(false, &str); - object_property_get(obj, v, name, &err); - if (err) { - error_propagate(errp, err); + object_property_get(obj, v, name, errp); + if (ERR_IS_SET(errp)) { visit_free(v); return 0; } @@ -1268,14 +1266,12 @@ int object_property_get_enum(Object *obj, const cha= r *name, void object_property_get_uint16List(Object *obj, const char *name, uint16List **list, Error **errp) { - Error *err =3D NULL; Visitor *v; char *str; =20 v =3D string_output_visitor_new(false, &str); - object_property_get(obj, v, name, &err); - if (err) { - error_propagate(errp, err); + object_property_get(obj, v, name, errp); + if (ERR_IS_SET(errp)) { goto out; } visit_complete(v, &str); @@ -1301,12 +1297,10 @@ char *object_property_print(Object *obj, const char= *name, bool human, { Visitor *v; char *string =3D NULL; - Error *local_err =3D NULL; =20 v =3D string_output_visitor_new(human, &string); - object_property_get(obj, v, name, &local_err); - if (local_err) { - error_propagate(errp, local_err); + object_property_get(obj, v, name, errp); + if (ERR_IS_SET(errp)) { goto out; } =20 @@ -1758,11 +1752,9 @@ static void property_set_str(Object *obj, Visitor *v= , const char *name, { StringProperty *prop =3D opaque; char *value; - Error *local_err =3D NULL; =20 - visit_type_str(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_str(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1782,7 +1774,6 @@ void object_property_add_str(Object *obj, const char = *name, void (*set)(Object *, const char *, Error **), Error **errp) { - Error *local_err =3D NULL; StringProperty *prop =3D g_malloc0(sizeof(*prop)); =20 prop->get =3D get; @@ -1792,9 +1783,8 @@ void object_property_add_str(Object *obj, const char = *name, get ? property_get_str : NULL, set ? property_set_str : NULL, property_release_str, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } @@ -1805,7 +1795,6 @@ void object_class_property_add_str(ObjectClass *klass= , const char *name, Error **), Error **errp) { - Error *local_err =3D NULL; StringProperty *prop =3D g_malloc0(sizeof(*prop)); =20 prop->get =3D get; @@ -1815,9 +1804,8 @@ void object_class_property_add_str(ObjectClass *klass= , const char *name, get ? property_get_str : NULL, set ? property_set_str : NULL, property_release_str, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } @@ -1849,11 +1837,9 @@ static void property_set_bool(Object *obj, Visitor *= v, const char *name, { BoolProperty *prop =3D opaque; bool value; - Error *local_err =3D NULL; =20 - visit_type_bool(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_bool(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -1872,7 +1858,6 @@ void object_property_add_bool(Object *obj, const char= *name, void (*set)(Object *, bool, Error **), Error **errp) { - Error *local_err =3D NULL; BoolProperty *prop =3D g_malloc0(sizeof(*prop)); =20 prop->get =3D get; @@ -1882,9 +1867,8 @@ void object_property_add_bool(Object *obj, const char= *name, get ? property_get_bool : NULL, set ? property_set_bool : NULL, property_release_bool, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } @@ -1894,7 +1878,6 @@ void object_class_property_add_bool(ObjectClass *klas= s, const char *name, void (*set)(Object *, bool, Error **), Error **errp) { - Error *local_err =3D NULL; BoolProperty *prop =3D g_malloc0(sizeof(*prop)); =20 prop->get =3D get; @@ -1904,9 +1887,8 @@ void object_class_property_add_bool(ObjectClass *klas= s, const char *name, get ? property_get_bool : NULL, set ? property_set_bool : NULL, property_release_bool, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } @@ -1932,11 +1914,9 @@ static void property_set_enum(Object *obj, Visitor *= v, const char *name, { EnumProperty *prop =3D opaque; int value; - Error *err =3D NULL; =20 - visit_type_enum(v, name, &value, prop->strings, &err); - if (err) { - error_propagate(errp, err); + visit_type_enum(v, name, &value, prop->strings, errp); + if (ERR_IS_SET(errp)) { return; } prop->set(obj, value, errp); @@ -1956,7 +1936,6 @@ void object_property_add_enum(Object *obj, const char= *name, void (*set)(Object *, int, Error **), Error **errp) { - Error *local_err =3D NULL; EnumProperty *prop =3D g_malloc(sizeof(*prop)); =20 prop->strings =3D strings; @@ -1967,9 +1946,8 @@ void object_property_add_enum(Object *obj, const char= *name, get ? property_get_enum : NULL, set ? property_set_enum : NULL, property_release_enum, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } @@ -1981,7 +1959,6 @@ void object_class_property_add_enum(ObjectClass *klas= s, const char *name, void (*set)(Object *, int, Error **), Error **errp) { - Error *local_err =3D NULL; EnumProperty *prop =3D g_malloc(sizeof(*prop)); =20 prop->strings =3D strings; @@ -1992,9 +1969,8 @@ void object_class_property_add_enum(ObjectClass *klas= s, const char *name, get ? property_get_enum : NULL, set ? property_set_enum : NULL, property_release_enum, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } @@ -2062,7 +2038,6 @@ void object_property_add_tm(Object *obj, const char *= name, void (*get)(Object *, struct tm *, Error **), Error **errp) { - Error *local_err =3D NULL; TMProperty *prop =3D g_malloc0(sizeof(*prop)); =20 prop->get =3D get; @@ -2070,9 +2045,8 @@ void object_property_add_tm(Object *obj, const char *= name, object_property_add(obj, name, "struct tm", get ? property_get_tm : NULL, NULL, property_release_tm, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } @@ -2081,7 +2055,6 @@ void object_class_property_add_tm(ObjectClass *klass,= const char *name, void (*get)(Object *, struct tm *, Error= **), Error **errp) { - Error *local_err =3D NULL; TMProperty *prop =3D g_malloc0(sizeof(*prop)); =20 prop->get =3D get; @@ -2089,9 +2062,8 @@ void object_class_property_add_tm(ObjectClass *klass,= const char *name, object_class_property_add(klass, name, "struct tm", get ? property_get_tm : NULL, NULL, property_release_tm, - prop, &local_err); - if (local_err) { - error_propagate(errp, local_err); + prop, errp); + if (ERR_IS_SET(errp)) { g_free(prop); } } diff --git a/replication.c b/replication.c index be3a42f9c9..d8f00e75b2 100644 --- a/replication.c +++ b/replication.c @@ -45,14 +45,12 @@ void replication_remove(ReplicationState *rs) void replication_start_all(ReplicationMode mode, Error **errp) { ReplicationState *rs, *next; - Error *local_err =3D NULL; =20 QLIST_FOREACH_SAFE(rs, &replication_states, node, next) { if (rs->ops && rs->ops->start) { - rs->ops->start(rs, mode, &local_err); + rs->ops->start(rs, mode, errp); } - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } } @@ -61,14 +59,12 @@ void replication_start_all(ReplicationMode mode, Error = **errp) void replication_do_checkpoint_all(Error **errp) { ReplicationState *rs, *next; - Error *local_err =3D NULL; =20 QLIST_FOREACH_SAFE(rs, &replication_states, node, next) { if (rs->ops && rs->ops->checkpoint) { - rs->ops->checkpoint(rs, &local_err); + rs->ops->checkpoint(rs, errp); } - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } } @@ -77,14 +73,12 @@ void replication_do_checkpoint_all(Error **errp) void replication_get_error_all(Error **errp) { ReplicationState *rs, *next; - Error *local_err =3D NULL; =20 QLIST_FOREACH_SAFE(rs, &replication_states, node, next) { if (rs->ops && rs->ops->get_error) { - rs->ops->get_error(rs, &local_err); + rs->ops->get_error(rs, errp); } - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } } @@ -93,14 +87,12 @@ void replication_get_error_all(Error **errp) void replication_stop_all(bool failover, Error **errp) { ReplicationState *rs, *next; - Error *local_err =3D NULL; =20 QLIST_FOREACH_SAFE(rs, &replication_states, node, next) { if (rs->ops && rs->ops->stop) { - rs->ops->stop(rs, failover, &local_err); + rs->ops->stop(rs, failover, errp); } - if (local_err) { - error_propagate(errp, local_err); + if (ERR_IS_SET(errp)) { return; } } diff --git a/target/alpha/cpu.c b/target/alpha/cpu.c index a863a1bf4d..b0a391f54b 100644 --- a/target/alpha/cpu.c +++ b/target/alpha/cpu.c @@ -58,11 +58,9 @@ static void alpha_cpu_realizefn(DeviceState *dev, Error = **errp) { CPUState *cs =3D CPU(dev); AlphaCPUClass *acc =3D ALPHA_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 28a9141298..00b17ca6af 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -628,11 +628,9 @@ static void arm_cpu_realizefn(DeviceState *dev, Error = **errp) ARMCPUClass *acc =3D ARM_CPU_GET_CLASS(dev); CPUARMState *env =3D &cpu->env; int pagebits; - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/cris/cpu.c b/target/cris/cpu.c index 5f766f09d6..32815e3fa3 100644 --- a/target/cris/cpu.c +++ b/target/cris/cpu.c @@ -141,11 +141,9 @@ static void cris_cpu_realizefn(DeviceState *dev, Error= **errp) { CPUState *cs =3D CPU(dev); CRISCPUClass *ccc =3D CRIS_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c index 6a05445e0e..500414752e 100644 --- a/target/hppa/cpu.c +++ b/target/hppa/cpu.c @@ -52,11 +52,9 @@ static void hppa_cpu_realizefn(DeviceState *dev, Error *= *errp) { CPUState *cs =3D CPU(dev); HPPACPUClass *acc =3D HPPA_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/i386/cpu.c b/target/i386/cpu.c index ae7abdade5..e0a5862568 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1699,12 +1699,10 @@ static void x86_cpuid_version_set_family(Object *ob= j, Visitor *v, CPUX86State *env =3D &cpu->env; const int64_t min =3D 0; const int64_t max =3D 0xff + 0xf; - Error *local_err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } if (value < min || value > max) { @@ -1742,12 +1740,10 @@ static void x86_cpuid_version_set_model(Object *obj= , Visitor *v, CPUX86State *env =3D &cpu->env; const int64_t min =3D 0; const int64_t max =3D 0xff; - Error *local_err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } if (value < min || value > max) { @@ -1780,12 +1776,10 @@ static void x86_cpuid_version_set_stepping(Object *= obj, Visitor *v, CPUX86State *env =3D &cpu->env; const int64_t min =3D 0; const int64_t max =3D 0xf; - Error *local_err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } if (value < min || value > max) { @@ -1885,12 +1879,10 @@ static void x86_cpuid_set_tsc_freq(Object *obj, Vis= itor *v, const char *name, X86CPU *cpu =3D X86_CPU(obj); const int64_t min =3D 0; const int64_t max =3D INT64_MAX; - Error *local_err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } if (value < min || value > max) { @@ -1946,12 +1938,10 @@ static void x86_set_hv_spinlocks(Object *obj, Visit= or *v, const char *name, const int64_t min =3D 0xFFF; const int64_t max =3D UINT_MAX; X86CPU *cpu =3D X86_CPU(obj); - Error *err =3D NULL; int64_t value; =20 - visit_type_int(v, name, &value, &err); - if (err) { - error_propagate(errp, err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -3684,7 +3674,6 @@ static void x86_cpu_unrealizefn(DeviceState *dev, Err= or **errp) { X86CPU *cpu =3D X86_CPU(dev); X86CPUClass *xcc =3D X86_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 #ifndef CONFIG_USER_ONLY cpu_remove_sync(CPU(dev)); @@ -3696,9 +3685,8 @@ static void x86_cpu_unrealizefn(DeviceState *dev, Err= or **errp) cpu->apic_state =3D NULL; } =20 - xcc->parent_unrealize(dev, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + xcc->parent_unrealize(dev, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -3724,7 +3712,6 @@ static void x86_cpu_set_bit_prop(Object *obj, Visitor= *v, const char *name, DeviceState *dev =3D DEVICE(obj); X86CPU *cpu =3D X86_CPU(obj); BitProperty *fp =3D opaque; - Error *local_err =3D NULL; bool value; =20 if (dev->realized) { @@ -3732,9 +3719,8 @@ static void x86_cpu_set_bit_prop(Object *obj, Visitor= *v, const char *name, return; } =20 - visit_type_bool(v, name, &value, &local_err); - if (local_err) { - error_propagate(errp, local_err); + visit_type_bool(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/lm32/cpu.c b/target/lm32/cpu.c index 2b8c36b6d0..8bd90c09dc 100644 --- a/target/lm32/cpu.c +++ b/target/lm32/cpu.c @@ -143,11 +143,9 @@ static void lm32_cpu_realizefn(DeviceState *dev, Error= **errp) { CPUState *cs =3D CPU(dev); LM32CPUClass *lcc =3D LM32_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c index f06892271f..ae7fa0e1b0 100644 --- a/target/m68k/cpu.c +++ b/target/m68k/cpu.c @@ -221,11 +221,9 @@ static void m68k_cpu_realizefn(DeviceState *dev, Error= **errp) CPUState *cs =3D CPU(dev); M68kCPU *cpu =3D M68K_CPU(dev); M68kCPUClass *mcc =3D M68K_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index 3d58869716..026b5b3e3f 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -137,11 +137,9 @@ static void mb_cpu_realizefn(DeviceState *dev, Error *= *errp) CPUMBState *env =3D &cpu->env; uint8_t version_code =3D 0; int i =3D 0; - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/mips/cpu.c b/target/mips/cpu.c index 1bb66b7a5a..07c82ebb9d 100644 --- a/target/mips/cpu.c +++ b/target/mips/cpu.c @@ -123,11 +123,9 @@ static void mips_cpu_realizefn(DeviceState *dev, Error= **errp) { CPUState *cs =3D CPU(dev); MIPSCPUClass *mcc =3D MIPS_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/moxie/cpu.c b/target/moxie/cpu.c index 927b1a1e44..ad7435ecbd 100644 --- a/target/moxie/cpu.c +++ b/target/moxie/cpu.c @@ -59,11 +59,9 @@ static void moxie_cpu_realizefn(DeviceState *dev, Error = **errp) { CPUState *cs =3D CPU(dev); MoxieCPUClass *mcc =3D MOXIE_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/nios2/cpu.c b/target/nios2/cpu.c index 7015cdefe6..227c5352a7 100644 --- a/target/nios2/cpu.c +++ b/target/nios2/cpu.c @@ -96,11 +96,9 @@ static void nios2_cpu_realizefn(DeviceState *dev, Error = **errp) { CPUState *cs =3D CPU(dev); Nios2CPUClass *ncc =3D NIOS2_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/openrisc/cpu.c b/target/openrisc/cpu.c index 1d6330cbcc..8cd0a46bf1 100644 --- a/target/openrisc/cpu.c +++ b/target/openrisc/cpu.c @@ -69,11 +69,9 @@ static void openrisc_cpu_realizefn(DeviceState *dev, Err= or **errp) { CPUState *cs =3D CPU(dev); OpenRISCCPUClass *occ =3D OPENRISC_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c index 56a0ab22cf..0597df737e 100644 --- a/target/ppc/translate_init.c +++ b/target/ppc/translate_init.c @@ -8444,14 +8444,12 @@ static void powerpc_get_compat(Object *obj, Visitor= *v, const char *name, static void powerpc_set_compat(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - Error *error =3D NULL; char *value =3D NULL; Property *prop =3D opaque; uint32_t *max_compat =3D qdev_get_prop_ptr(DEVICE(obj), prop); =20 - visit_type_str(v, name, &value, &error); - if (error) { - error_propagate(errp, error); + visit_type_str(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -9825,7 +9823,6 @@ static void ppc_cpu_realizefn(DeviceState *dev, Error= **errp) CPUState *cs =3D CPU(dev); PowerPCCPU *cpu =3D POWERPC_CPU(dev); PowerPCCPUClass *pcc =3D POWERPC_CPU_GET_CLASS(cpu); - Error *local_err =3D NULL; #if !defined(CONFIG_USER_ONLY) int max_smt =3D kvmppc_smt_threads(); #endif @@ -9844,9 +9841,8 @@ static void ppc_cpu_realizefn(DeviceState *dev, Error= **errp) } #endif =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 @@ -9879,9 +9875,8 @@ static void ppc_cpu_realizefn(DeviceState *dev, Error= **errp) } #endif =20 - create_ppc_opcodes(cpu, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + create_ppc_opcodes(cpu, errp); + if (ERR_IS_SET(errp)) { return; } init_ppc_proc(cpu); @@ -10074,13 +10069,11 @@ static void ppc_cpu_unrealizefn(DeviceState *dev,= Error **errp) PowerPCCPU *cpu =3D POWERPC_CPU(dev); PowerPCCPUClass *pcc =3D POWERPC_CPU_GET_CLASS(cpu); CPUPPCState *env =3D &cpu->env; - Error *local_err =3D NULL; opc_handler_t **table, **table_2; int i, j, k; =20 - pcc->parent_unrealize(dev, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + pcc->parent_unrealize(dev, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c index 75e5966749..7d9e104151 100644 --- a/target/s390x/cpu.c +++ b/target/s390x/cpu.c @@ -250,7 +250,6 @@ static void s390x_cpu_set_id(Object *obj, Visitor *v, c= onst char *name, DeviceState *dev =3D DEVICE(obj); const int64_t min =3D 0; const int64_t max =3D UINT32_MAX; - Error *err =3D NULL; int64_t value; =20 if (dev->realized) { @@ -259,9 +258,8 @@ static void s390x_cpu_set_id(Object *obj, Visitor *v, c= onst char *name, return; } =20 - visit_type_int(v, name, &value, &err); - if (err) { - error_propagate(errp, err); + visit_type_int(v, name, &value, errp); + if (ERR_IS_SET(errp)) { return; } if (value < min || value > max) { diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c index 9da7e1ed38..dc2cbce478 100644 --- a/target/sh4/cpu.c +++ b/target/sh4/cpu.c @@ -243,11 +243,9 @@ static void superh_cpu_realizefn(DeviceState *dev, Err= or **errp) { CPUState *cs =3D CPU(dev); SuperHCPUClass *scc =3D SUPERH_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c index 4d6f0c4f66..51a6f129a1 100644 --- a/target/sparc/cpu.c +++ b/target/sparc/cpu.c @@ -800,7 +800,6 @@ static void sparc_cpu_realizefn(DeviceState *dev, Error= **errp) { CPUState *cs =3D CPU(dev); SPARCCPUClass *scc =3D SPARC_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; #if defined(CONFIG_USER_ONLY) SPARCCPU *cpu =3D SPARC_CPU(dev); CPUSPARCState *env =3D &cpu->env; @@ -810,9 +809,8 @@ static void sparc_cpu_realizefn(DeviceState *dev, Error= **errp) } #endif =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/tilegx/cpu.c b/target/tilegx/cpu.c index f8c479e1d7..f8448c4c9e 100644 --- a/target/tilegx/cpu.c +++ b/target/tilegx/cpu.c @@ -90,11 +90,9 @@ static void tilegx_cpu_realizefn(DeviceState *dev, Error= **errp) { CPUState *cs =3D CPU(dev); TileGXCPUClass *tcc =3D TILEGX_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c index 08f50e2ba7..efeb6553d0 100644 --- a/target/tricore/cpu.c +++ b/target/tricore/cpu.c @@ -67,11 +67,9 @@ static void tricore_cpu_realizefn(DeviceState *dev, Erro= r **errp) TriCoreCPU *cpu =3D TRICORE_CPU(dev); TriCoreCPUClass *tcc =3D TRICORE_CPU_GET_CLASS(dev); CPUTriCoreState *env =3D &cpu->env; - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/unicore32/cpu.c b/target/unicore32/cpu.c index c9b78ce68e..3b14cfa37d 100644 --- a/target/unicore32/cpu.c +++ b/target/unicore32/cpu.c @@ -103,11 +103,9 @@ static void uc32_cpu_realizefn(DeviceState *dev, Error= **errp) { CPUState *cs =3D CPU(dev); UniCore32CPUClass *ucc =3D UNICORE32_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c index cd7f95823f..69bf002489 100644 --- a/target/xtensa/cpu.c +++ b/target/xtensa/cpu.c @@ -101,11 +101,9 @@ static void xtensa_cpu_realizefn(DeviceState *dev, Err= or **errp) { CPUState *cs =3D CPU(dev); XtensaCPUClass *xcc =3D XTENSA_CPU_GET_CLASS(dev); - Error *local_err =3D NULL; =20 - cpu_exec_realizefn(cs, &local_err); - if (local_err !=3D NULL) { - error_propagate(errp, local_err); + cpu_exec_realizefn(cs, errp); + if (ERR_IS_SET(errp)) { return; } =20 diff --git a/util/qemu-config.c b/util/qemu-config.c index be9ffb5872..48e5691f8d 100644 --- a/util/qemu-config.c +++ b/util/qemu-config.c @@ -568,12 +568,10 @@ void qemu_config_parse_qdict(QDict *options, QemuOpts= List **lists, Error **errp) { int i; - Error *local_err =3D NULL; =20 for (i =3D 0; lists[i]; i++) { - config_parse_qdict_section(options, lists[i], &local_err); - if (local_err) { - error_propagate(errp, local_err); + config_parse_qdict_section(options, lists[i], errp); + if (ERR_IS_SET(errp)) { return; } } diff --git a/util/qemu-option.c b/util/qemu-option.c index 5f1c7af1c6..4a4b145d42 100644 --- a/util/qemu-option.c +++ b/util/qemu-option.c @@ -526,7 +526,6 @@ static void opt_set(QemuOpts *opts, const char *name, c= onst char *value, { QemuOpt *opt; const QemuOptDesc *desc; - Error *local_err =3D NULL; =20 desc =3D find_desc_by_name(opts->list->desc, name); if (!desc && !opts_accepts_any(opts)) { @@ -545,9 +544,8 @@ static void opt_set(QemuOpts *opts, const char *name, c= onst char *value, opt->desc =3D desc; opt->str =3D g_strdup(value); assert(opt->str); - qemu_opt_parse(opt, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opt_parse(opt, errp); + if (ERR_IS_SET(errp)) { qemu_opt_del(opt); } } @@ -790,7 +788,6 @@ static void opts_do_parse(QemuOpts *opts, const char *p= arams, { char option[128], value[1024]; const char *p,*pe,*pc; - Error *local_err =3D NULL; =20 for (p =3D params; *p !=3D '\0'; p++) { pe =3D strchr(p, '=3D'); @@ -822,9 +819,8 @@ static void opts_do_parse(QemuOpts *opts, const char *p= arams, } if (strcmp(option, "id") !=3D 0) { /* store and parse */ - opt_set(opts, option, value, prepend, &local_err); - if (local_err) { - error_propagate(errp, local_err); + opt_set(opts, option, value, prepend, errp); + if (ERR_IS_SET(errp)) { return; } } @@ -1073,7 +1069,6 @@ QDict *qemu_opts_to_qdict(QemuOpts *opts, QDict *qdic= t) void qemu_opts_validate(QemuOpts *opts, const QemuOptDesc *desc, Error **e= rrp) { QemuOpt *opt; - Error *local_err =3D NULL; =20 assert(opts_accepts_any(opts)); =20 @@ -1084,9 +1079,8 @@ void qemu_opts_validate(QemuOpts *opts, const QemuOpt= Desc *desc, Error **errp) return; } =20 - qemu_opt_parse(opt, &local_err); - if (local_err) { - error_propagate(errp, local_err); + qemu_opt_parse(opt, errp); + if (ERR_IS_SET(errp)) { return; } } --=20 2.11.0.259.g40922b1