[sheepdog] [RFC v5 000/126] error: auto propagated local_err
Vladimir Sementsov-Ogievskiy
vsementsov at virtuozzo.com
Fri Nov 8 16:30:29 CET 2019
Finally, what is the plan?
Markus what do you think?
Now a lot of patches are reviewed, but a lot of are not.
Is there any hope that all patches will be reviewed? Should I resend the
whole series, or may be reduce it to reviewed subsystems only?
11.10.2019 19:03, Vladimir Sementsov-Ogievskiy wrote:
> Hi all!
>
> At the request of Markus: full version of errp propagation. Let's look
> at it. Cover as much as possible, except inserting macro invocation
> where it's not necessary.
>
> It's huge, and so it's an RFC.
>
> In v5 I've added a lot more preparation cleanups:
> 01-23 are preparation cleanups
> 01: not changed, keep Eric's r-b
> 02: improve commit msg [Markus], keep Eric's r-b
> 03: changed, only error API here, drop r-b
> 24 is core macro
> - improve cover letter, wording and macro code style
> - keep Eric's r-b
> 25-26: automation scripts
> - commit-per-subsystem changed a lot. it's a draft, don't bother too
> much with it
> - coccinelle: add support of error_propagate_prepend
>
> 27-126: generated patches
>
> ====
>
> Here is a proposal of auto propagation for local_err, to not call
> error_propagate on every exit point, when we deal with local_err.
>
> There are also two issues with errp:
>
> 1. error_fatal & error_append_hint/error_prepend: user can't see this
> additional info, because exit() happens in error_setg earlier than info
> is added. [Reported by Greg Kurz]
>
> 2. error_abort & error_propagate: when we wrap
> error_abort by local_err+error_propagate, resulting coredump will
> refer to error_propagate and not to the place where error happened.
> (the macro itself don't fix the issue, but it allows to [3.] drop all
> local_err+error_propagate pattern, which will definitely fix the issue)
> [Reported by Kevin Wolf]
>
> ====
>
> Generated patches split:
>
> misc
> hw/misc/ivshmem.c
> hw/misc/tmp105.c
> hw/misc/tmp421.c
> s390x
> hw/intc/s390_flic_kvm.c
> hw/s390x/3270-ccw.c
> hw/s390x/css-bridge.c
> hw/s390x/css.c
> hw/s390x/s390-skeys.c
> hw/s390x/s390-virtio-ccw.c
> hw/s390x/sclp.c
> hw/s390x/tod-kvm.c
> hw/vfio/ccw.c
> target/s390x/cpu.c
> tcg
> exec.c
> hw/arm/armv7m.c
> hw/arm/smmu-common.c
> hw/arm/smmuv3.c
> hw/cpu/a15mpcore.c
> hw/cpu/a9mpcore.c
> hw/cpu/arm11mpcore.c
> hw/i386/pc.c
> hw/intc/nios2_iic.c
> hw/mips/cps.c
> hw/riscv/riscv_hart.c
> hw/riscv/sifive_e.c
> hw/riscv/sifive_u.c
> hw/sd/milkymist-memcard.c
> target/alpha/cpu.c
> target/arm/cpu.c
> target/arm/cpu64.c
> target/cris/cpu.c
> target/hppa/cpu.c
> target/i386/cpu.c
> target/lm32/cpu.c
> target/m68k/cpu.c
> target/microblaze/cpu.c
> target/mips/cpu.c
> target/moxie/cpu.c
> target/nios2/cpu.c
> target/openrisc/cpu.c
> target/ppc/compat.c
> target/ppc/translate_init.inc.c
> target/riscv/cpu.c
> target/sh4/cpu.c
> target/sparc/cpu.c
> target/tricore/cpu.c
> target/unicore32/cpu.c
> target/xtensa/cpu.c
> kvm
> target/ppc/kvm.c
> target/s390x/cpu_models.c
> xen
> hw/block/dataplane/xen-block.c
> hw/block/xen-block.c
> hw/xen/xen-backend.c
> hw/xen/xen-bus.c
> hw/xen/xen-host-pci-device.c
> hw/xen/xen_pt.c
> hw/xen/xen_pt_config_init.c
> Hosts
> qga/commands-win32.c
> util/oslib-posix.c
> ARM Machines
> hw/arm/allwinner-a10.c
> hw/arm/aspeed_soc.c
> hw/arm/bcm2835_peripherals.c
> hw/arm/bcm2836.c
> hw/arm/digic.c
> hw/arm/fsl-imx25.c
> hw/arm/fsl-imx31.c
> hw/arm/fsl-imx6.c
> hw/arm/integratorcp.c
> hw/arm/msf2-soc.c
> hw/arm/nrf51_soc.c
> hw/arm/stm32f205_soc.c
> hw/arm/virt.c
> hw/arm/xlnx-versal-virt.c
> hw/arm/xlnx-zynqmp.c
> hw/cpu/realview_mpcore.c
> hw/display/bcm2835_fb.c
> hw/dma/bcm2835_dma.c
> hw/dma/xilinx_axidma.c
> hw/gpio/aspeed_gpio.c
> hw/gpio/bcm2835_gpio.c
> hw/intc/arm_gic.c
> hw/intc/arm_gic_kvm.c
> hw/intc/arm_gicv3.c
> hw/intc/arm_gicv3_its_kvm.c
> hw/intc/arm_gicv3_kvm.c
> hw/intc/armv7m_nvic.c
> hw/intc/realview_gic.c
> hw/microblaze/xlnx-zynqmp-pmu.c
> hw/misc/bcm2835_mbox.c
> hw/misc/bcm2835_property.c
> hw/misc/msf2-sysreg.c
> hw/net/xilinx_axienet.c
> hw/nvram/nrf51_nvm.c
> hw/timer/aspeed_timer.c
> hw/watchdog/wdt_aspeed.c
> MIPS Machines
> hw/core/loader-fit.c
> PowerPC Machines
> hw/intc/pnv_xive.c
> hw/intc/xics.c
> hw/intc/xics_kvm.c
> hw/intc/xics_pnv.c
> hw/intc/xics_spapr.c
> hw/isa/pc87312.c
> hw/misc/macio/macio.c
> hw/ppc/e500.c
> hw/ppc/mac_newworld.c
> hw/ppc/pnv.c
> hw/ppc/pnv_core.c
> hw/ppc/pnv_homer.c
> hw/ppc/pnv_lpc.c
> hw/ppc/pnv_occ.c
> hw/ppc/pnv_psi.c
> hw/ppc/spapr.c
> hw/ppc/spapr_caps.c
> hw/ppc/spapr_cpu_core.c
> hw/ppc/spapr_drc.c
> hw/ppc/spapr_irq.c
> hw/ppc/spapr_pci.c
> hw/ppc/spapr_vio.c
> SPARC Machines
> hw/sparc/sun4m.c
> hw/sparc64/sun4u.c
> S390 Machines
> hw/s390x/ipl.c
> hw/s390x/s390-pci-bus.c
> X86 Machines
> hw/acpi/ich9.c
> hw/char/debugcon.c
> hw/char/serial-pci-multi.c
> hw/char/serial-pci.c
> hw/core/machine.c
> hw/core/numa.c
> hw/intc/apic_common.c
> hw/pci-host/piix.c
> IDE
> hw/ide/qdev.c
> Floppy
> hw/block/fdc.c
> IPack
> hw/ipack/ipack.c
> PCI
> hw/pci-bridge/gen_pcie_root_port.c
> hw/pci-bridge/pci_bridge_dev.c
> hw/pci-bridge/pci_expander_bridge.c
> hw/pci-bridge/pcie_pci_bridge.c
> hw/pci-bridge/pcie_root_port.c
> hw/pci/pci.c
> hw/pci/pcie.c
> hw/pci/shpc.c
> ACPI/SMBIOS
> hw/acpi/core.c
> hw/acpi/cpu_hotplug.c
> hw/acpi/memory_hotplug.c
> hw/mem/memory-device.c
> hw/mem/pc-dimm.c
> hw/smbios/smbios.c
> Network devices
> hw/net/dp8393x.c
> hw/net/ne2000-isa.c
> pflash
> hw/block/pflash_cfi01.c
> hw/block/pflash_cfi02.c
> SCSI
> hw/scsi/esp-pci.c
> hw/scsi/mptsas.c
> hw/scsi/scsi-bus.c
> hw/scsi/scsi-disk.c
> hw/scsi/scsi-generic.c
> hw/scsi/virtio-scsi.c
> SD (Secure Card)
> hw/sd/sdhci-pci.c
> hw/sd/sdhci.c
> USB
> hw/usb/bus.c
> hw/usb/ccid-card-emulated.c
> hw/usb/dev-smartcard-reader.c
> hw/usb/dev-storage.c
> hw/usb/hcd-ohci-pci.c
> hw/usb/hcd-ohci.c
> hw/usb/hcd-uhci.c
> hw/usb/hcd-xhci.c
> USB (serial adapter)
> hw/usb/dev-serial.c
> VFIO
> hw/vfio/common.c
> hw/vfio/pci-quirks.c
> hw/vfio/pci.c
> hw/vfio/platform.c
> vfio-ccw
> hw/s390x/s390-ccw.c
> vhost
> hw/block/vhost-user-blk.c
> hw/scsi/vhost-scsi.c
> hw/scsi/vhost-user-scsi.c
> hw/virtio/vhost-vsock.c
> virtio
> hw/virtio/virtio-balloon.c
> hw/virtio/virtio-bus.c
> hw/virtio/virtio-pci.c
> hw/virtio/virtio-rng-pci.c
> hw/virtio/virtio.c
> virtio-9p
> hw/9pfs/9p-local.c
> hw/9pfs/9p.c
> virtio-blk
> hw/block/dataplane/virtio-blk.c
> hw/block/virtio-blk.c
> virtio-ccw
> hw/s390x/virtio-ccw-crypto.c
> hw/s390x/virtio-ccw-rng.c
> hw/s390x/virtio-ccw.c
> virtio-input
> hw/input/virtio-input.c
> virtio-serial
> hw/char/virtio-serial-bus.c
> virtio-rng
> backends/rng.c
> hw/virtio/virtio-rng.c
> megasas
> hw/scsi/megasas.c
> NVDIMM
> hw/mem/nvdimm.c
> eepro100
> hw/net/eepro100.c
> virtio-gpu
> hw/display/virtio-gpu-base.c
> hw/display/virtio-gpu-pci.c
> hw/display/virtio-vga.c
> fw_cfg
> hw/nvram/fw_cfg.c
> XIVE
> hw/intc/spapr_xive.c
> hw/intc/spapr_xive_kvm.c
> hw/intc/xive.c
> Audio
> audio/audio.c
> hw/audio/intel-hda.c
> block
> block.c
> block/backup.c
> block/block-backend.c
> block/commit.c
> block/crypto.c
> block/dirty-bitmap.c
> block/io.c
> block/mirror.c
> block/qapi.c
> block/snapshot.c
> block/throttle-groups.c
> block/throttle.c
> block/vxhs.c
> blockdev.c
> blockjob.c
> hw/block/onenand.c
> job.c
> scsi
> scsi/pr-manager-helper.c
> chardev
> chardev/char-socket.c
> chardev/char.c
> chardev/spice.c
> cmdline
> util/qemu-option.c
> Dump
> dump/dump.c
> dump/win_dump.c
> Memory API
> memory.c
> SPICE
> hw/display/qxl.c
> Graphics
> ui/input-barrier.c
> ui/input.c
> ui/vnc.c
> Main loop
> util/main-loop.c
> vl.c
> Human Monitor (HMP)
> monitor/misc.c
> net
> net/can/can_host.c
> net/dump.c
> net/filter-buffer.c
> net/filter.c
> net/net.c
> net/netmap.c
> net/tap.c
> hostmem
> backends/hostmem-file.c
> backends/hostmem-memfd.c
> backends/hostmem.c
> cryptodev
> backends/cryptodev-vhost-user.c
> backends/cryptodev.c
> QAPI
> qapi/qapi-visit-core.c
> qapi/qmp-dispatch.c
> qapi/string-input-visitor.c
> qga
> qga/commands-posix.c
> QOM
> hw/core/qdev-properties-system.c
> hw/core/qdev-properties.c
> hw/core/qdev.c
> qdev-monitor.c
> qom/object.c
> qom/object_interfaces.c
> qom/qom-qobject.c
> QMP
> monitor/qmp-cmds.c
> SLIRP
> net/slirp.c
> Tracing
> trace/qmp.c
> TPM
> hw/tpm/tpm_util.c
> tpm.c
> Migration
> migration/migration.c
> migration/ram.c
> migration/rdma.c
> migration/savevm.c
> migration/socket.c
> Cryptography
> crypto/block-luks.c
> crypto/secret.c
> crypto/tlssession.c
> I/O Channels
> io/dns-resolver.c
> io/net-listener.c
> Sockets
> util/qemu-sockets.c
> colo
> migration/colo.c
> Record/replay
> block/blkreplay.c
> VMDK
> block/vmdk.c
> RBD
> block/rbd.c
> Sheepdog
> block/sheepdog.c
> VHDX
> block/vhdx-log.c
> block/vhdx.c
> VDI
> block/vdi.c
> iSCSI
> block/iscsi.c
> nbd
> include/block/nbd.h
> block/nbd.c
> nbd/client.c
> nbd/server.c
> NFS
> block/nfs.c
> SSH
> block/ssh.c
> CURL
> block/curl.c
> GLUSTER
> block/gluster.c
> NVMe Block Driver
> block/nvme.c
> Bootdevice
> bootdevice.c
> Quorum
> block/quorum.c
> blklogwrites
> block/blklogwrites.c
> blkverify
> block/blkverify.c
> parallels
> block/parallels.c
> qed
> block/qed.c
> raw
> block/file-posix.c
> block/file-win32.c
> block/raw-format.c
> qcow2
> block/qcow2-bitmap.c
> block/qcow2.c
> qcow
> block/qcow.c
> blkdebug
> block/blkdebug.c
> vpc
> block/vpc.c
> vvfat
> block/vvfat.c
> Replication
> block/replication.c
> replication.c
> PVRDMA
> hw/rdma/vmw/pvrdma_main.c
> hw/core/bus.c
> hw/core/bus.c
> hw/cpu/core.c
> hw/cpu/core.c
> hw/sd/ssi-sd.c
> hw/sd/ssi-sd.c
> iothread.c
> iothread.c
> memory_mapping.c
> memory_mapping.c
> target/tilegx/cpu.c
> target/tilegx/cpu.c
> tests/test-image-locking.c
> tests/test-image-locking.c
> util/qemu-config.c
> util/qemu-config.c
>
>
> Vladimir Sementsov-Ogievskiy (126):
> hw/core/loader-fit: fix freeing errp in fit_load_fdt
> net/net: Clean up variable shadowing in net_client_init()
> error: rename errp to errp_in where it is IN-argument
> hmp: drop Error pointer indirection in hmp_handle_error
> vnc: drop Error pointer indirection in vnc_client_io_error
> qdev-monitor: well form error hint helpers
> nbd: well form nbd_iter_channel_error errp handler
> ppc: well form kvmppc_hint_smt_possible error hint helper
> 9pfs: well form error hint helpers
> hw/core/qdev: cleanup Error ** variables
> block/snapshot: rename Error ** parameter to more common errp
> hw/i386/amd_iommu: rename Error ** parameter to more common errp
> qga: rename Error ** parameter to more common errp
> monitor/qmp-cmds: rename Error ** parameter to more common errp
> hw/s390x: rename Error ** parameter to more common errp
> hw/sd: rename Error ** parameter to more common errp
> hw/tpm: rename Error ** parameter to more common errp
> hw/usb: rename Error ** parameter to more common errp
> include/block/snapshot.h: rename Error ** parameter to more common
> errp
> include/qom/object.h: rename Error ** parameter to more common errp
> qapi/error: add (Error **errp) cleaning APIs
> backends/cryptodev: drop local_err from cryptodev_backend_complete()
> hw/vfio/ap: drop local_err from vfio_ap_realize
> error: auto propagated local_err
> scripts: add coccinelle script to use auto propagated errp
> python: add commit-per-subsystem.py
> misc: introduce ERRP_AUTO_PROPAGATE
> s390x: introduce ERRP_AUTO_PROPAGATE
> tcg: introduce ERRP_AUTO_PROPAGATE
> kvm: introduce ERRP_AUTO_PROPAGATE
> xen: introduce ERRP_AUTO_PROPAGATE
> Hosts: introduce ERRP_AUTO_PROPAGATE
> ARM Machines: introduce ERRP_AUTO_PROPAGATE
> MIPS Machines: introduce ERRP_AUTO_PROPAGATE
> PowerPC Machines: introduce ERRP_AUTO_PROPAGATE
> SPARC Machines: introduce ERRP_AUTO_PROPAGATE
> S390 Machines: introduce ERRP_AUTO_PROPAGATE
> X86 Machines: introduce ERRP_AUTO_PROPAGATE
> IDE: introduce ERRP_AUTO_PROPAGATE
> Floppy: introduce ERRP_AUTO_PROPAGATE
> IPack: introduce ERRP_AUTO_PROPAGATE
> PCI: introduce ERRP_AUTO_PROPAGATE
> ACPI/SMBIOS: introduce ERRP_AUTO_PROPAGATE
> Network devices: introduce ERRP_AUTO_PROPAGATE
> pflash: introduce ERRP_AUTO_PROPAGATE
> SCSI: introduce ERRP_AUTO_PROPAGATE
> SD (Secure Card): introduce ERRP_AUTO_PROPAGATE
> USB: introduce ERRP_AUTO_PROPAGATE
> USB (serial adapter): introduce ERRP_AUTO_PROPAGATE
> VFIO: introduce ERRP_AUTO_PROPAGATE
> vfio-ccw: introduce ERRP_AUTO_PROPAGATE
> vhost: introduce ERRP_AUTO_PROPAGATE
> virtio: introduce ERRP_AUTO_PROPAGATE
> virtio-9p: introduce ERRP_AUTO_PROPAGATE
> virtio-blk: introduce ERRP_AUTO_PROPAGATE
> virtio-ccw: introduce ERRP_AUTO_PROPAGATE
> virtio-input: introduce ERRP_AUTO_PROPAGATE
> virtio-serial: introduce ERRP_AUTO_PROPAGATE
> virtio-rng: introduce ERRP_AUTO_PROPAGATE
> megasas: introduce ERRP_AUTO_PROPAGATE
> NVDIMM: introduce ERRP_AUTO_PROPAGATE
> eepro100: introduce ERRP_AUTO_PROPAGATE
> virtio-gpu: introduce ERRP_AUTO_PROPAGATE
> fw_cfg: introduce ERRP_AUTO_PROPAGATE
> XIVE: introduce ERRP_AUTO_PROPAGATE
> Audio: introduce ERRP_AUTO_PROPAGATE
> block: introduce ERRP_AUTO_PROPAGATE
> scsi: introduce ERRP_AUTO_PROPAGATE
> chardev: introduce ERRP_AUTO_PROPAGATE
> cmdline: introduce ERRP_AUTO_PROPAGATE
> Dump: introduce ERRP_AUTO_PROPAGATE
> Memory API: introduce ERRP_AUTO_PROPAGATE
> SPICE: introduce ERRP_AUTO_PROPAGATE
> Graphics: introduce ERRP_AUTO_PROPAGATE
> Main loop: introduce ERRP_AUTO_PROPAGATE
> Human Monitor (HMP): introduce ERRP_AUTO_PROPAGATE
> net: introduce ERRP_AUTO_PROPAGATE
> hostmem: introduce ERRP_AUTO_PROPAGATE
> cryptodev: introduce ERRP_AUTO_PROPAGATE
> QAPI: introduce ERRP_AUTO_PROPAGATE
> qga: introduce ERRP_AUTO_PROPAGATE
> QOM: introduce ERRP_AUTO_PROPAGATE
> QMP: introduce ERRP_AUTO_PROPAGATE
> SLIRP: introduce ERRP_AUTO_PROPAGATE
> Tracing: introduce ERRP_AUTO_PROPAGATE
> TPM: introduce ERRP_AUTO_PROPAGATE
> Migration: introduce ERRP_AUTO_PROPAGATE
> Cryptography: introduce ERRP_AUTO_PROPAGATE
> I/O Channels: introduce ERRP_AUTO_PROPAGATE
> Sockets: introduce ERRP_AUTO_PROPAGATE
> colo: introduce ERRP_AUTO_PROPAGATE
> Record/replay: introduce ERRP_AUTO_PROPAGATE
> VMDK: introduce ERRP_AUTO_PROPAGATE
> RBD: introduce ERRP_AUTO_PROPAGATE
> Sheepdog: introduce ERRP_AUTO_PROPAGATE
> VHDX: introduce ERRP_AUTO_PROPAGATE
> VDI: introduce ERRP_AUTO_PROPAGATE
> iSCSI: introduce ERRP_AUTO_PROPAGATE
> nbd: introduce ERRP_AUTO_PROPAGATE
> NFS: introduce ERRP_AUTO_PROPAGATE
> SSH: introduce ERRP_AUTO_PROPAGATE
> CURL: introduce ERRP_AUTO_PROPAGATE
> GLUSTER: introduce ERRP_AUTO_PROPAGATE
> NVMe Block Driver: introduce ERRP_AUTO_PROPAGATE
> Bootdevice: introduce ERRP_AUTO_PROPAGATE
> Quorum: introduce ERRP_AUTO_PROPAGATE
> blklogwrites: introduce ERRP_AUTO_PROPAGATE
> blkverify: introduce ERRP_AUTO_PROPAGATE
> parallels: introduce ERRP_AUTO_PROPAGATE
> qed: introduce ERRP_AUTO_PROPAGATE
> raw: introduce ERRP_AUTO_PROPAGATE
> qcow2: introduce ERRP_AUTO_PROPAGATE
> qcow: introduce ERRP_AUTO_PROPAGATE
> blkdebug: introduce ERRP_AUTO_PROPAGATE
> vpc: introduce ERRP_AUTO_PROPAGATE
> vvfat: introduce ERRP_AUTO_PROPAGATE
> Replication: introduce ERRP_AUTO_PROPAGATE
> PVRDMA: introduce ERRP_AUTO_PROPAGATE
> hw/core/bus.c: introduce ERRP_AUTO_PROPAGATE
> hw/cpu/core.c: introduce ERRP_AUTO_PROPAGATE
> hw/sd/ssi-sd.c: introduce ERRP_AUTO_PROPAGATE
> iothread.c: introduce ERRP_AUTO_PROPAGATE
> memory_mapping.c: introduce ERRP_AUTO_PROPAGATE
> target/tilegx/cpu.c: introduce ERRP_AUTO_PROPAGATE
> tests/test-image-locking.c: introduce ERRP_AUTO_PROPAGATE
> util/qemu-config.c: introduce ERRP_AUTO_PROPAGATE
>
>
> CC: Gerd Hoffmann <kraxel at redhat.com>
> CC: "Gonglei (Arei)" <arei.gonglei at huawei.com>
> CC: Eduardo Habkost <ehabkost at redhat.com>
> CC: Igor Mammedov <imammedo at redhat.com>
> CC: Laurent Vivier <lvivier at redhat.com>
> CC: Amit Shah <amit at kernel.org>
> CC: Kevin Wolf <kwolf at redhat.com>
> CC: Max Reitz <mreitz at redhat.com>
> CC: John Snow <jsnow at redhat.com>
> CC: Ari Sundholm <ari at tuxera.com>
> CC: Pavel Dovgalyuk <pavel.dovgaluk at ispras.ru>
> CC: Paolo Bonzini <pbonzini at redhat.com>
> CC: Stefan Hajnoczi <stefanha at redhat.com>
> CC: Fam Zheng <fam at euphon.net>
> CC: Stefan Weil <sw at weilnetz.de>
> CC: Ronnie Sahlberg <ronniesahlberg at gmail.com>
> CC: Peter Lieven <pl at kamp.de>
> CC: Eric Blake <eblake at redhat.com>
> CC: "Denis V. Lunev" <den at openvz.org>
> CC: Markus Armbruster <armbru at redhat.com>
> CC: Alberto Garcia <berto at igalia.com>
> CC: Jason Dillaman <dillaman at redhat.com>
> CC: Wen Congyang <wencongyang2 at huawei.com>
> CC: Xie Changlong <xiechanglong.d at gmail.com>
> CC: Liu Yuan <namei.unix at gmail.com>
> CC: "Richard W.M. Jones" <rjones at redhat.com>
> CC: Jeff Cody <codyprime at gmail.com>
> CC: "Marc-André Lureau" <marcandre.lureau at redhat.com>
> CC: "Daniel P. Berrangé" <berrange at redhat.com>
> CC: Richard Henderson <rth at twiddle.net>
> CC: Greg Kurz <groug at kaod.org>
> CC: "Michael S. Tsirkin" <mst at redhat.com>
> CC: Marcel Apfelbaum <marcel.apfelbaum at gmail.com>
> CC: Beniamino Galvani <b.galvani at gmail.com>
> CC: Peter Maydell <peter.maydell at linaro.org>
> CC: "Cédric Le Goater" <clg at kaod.org>
> CC: Andrew Jeffery <andrew at aj.id.au>
> CC: Joel Stanley <joel at jms.id.au>
> CC: Andrew Baumann <Andrew.Baumann at microsoft.com>
> CC: "Philippe Mathieu-Daudé" <philmd at redhat.com>
> CC: Antony Pavlov <antonynpavlov at gmail.com>
> CC: Jean-Christophe Dubois <jcd at tribudubois.net>
> CC: Peter Chubb <peter.chubb at nicta.com.au>
> CC: Subbaraya Sundeep <sundeep.lkml at gmail.com>
> CC: Eric Auger <eric.auger at redhat.com>
> CC: Alistair Francis <alistair at alistair23.me>
> CC: "Edgar E. Iglesias" <edgar.iglesias at gmail.com>
> CC: Stefano Stabellini <sstabellini at kernel.org>
> CC: Anthony Perard <anthony.perard at citrix.com>
> CC: Paul Durrant <paul at xen.org>
> CC: Paul Burton <pburton at wavecomp.com>
> CC: Aleksandar Rikalo <arikalo at wavecomp.com>
> CC: Chris Wulff <crwulff at gmail.com>
> CC: Marek Vasut <marex at denx.de>
> CC: David Gibson <david at gibson.dropbear.id.au>
> CC: Cornelia Huck <cohuck at redhat.com>
> CC: Halil Pasic <pasic at linux.ibm.com>
> CC: Christian Borntraeger <borntraeger at de.ibm.com>
> CC: "Hervé Poussineau" <hpoussin at reactos.org>
> CC: Xiao Guangrong <xiaoguangrong.eric at gmail.com>
> CC: Aurelien Jarno <aurelien at aurel32.net>
> CC: Aleksandar Markovic <amarkovic at wavecomp.com>
> CC: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
> CC: Jason Wang <jasowang at redhat.com>
> CC: Laszlo Ersek <lersek at redhat.com>
> CC: Yuval Shaia <yuval.shaia at oracle.com>
> CC: Palmer Dabbelt <palmer at sifive.com>
> CC: Sagar Karandikar <sagark at eecs.berkeley.edu>
> CC: Bastian Koppelmann <kbastian at mail.uni-paderborn.de>
> CC: David Hildenbrand <david at redhat.com>
> CC: Thomas Huth <thuth at redhat.com>
> CC: Eric Farman <farman at linux.ibm.com>
> CC: Matthew Rosato <mjrosato at linux.ibm.com>
> CC: Hannes Reinecke <hare at suse.com>
> CC: Michael Walle <michael at walle.cc>
> CC: Artyom Tarasenko <atar4qemu at gmail.com>
> CC: Stefan Berger <stefanb at linux.ibm.com>
> CC: Samuel Thibault <samuel.thibault at ens-lyon.org>
> CC: Alex Williamson <alex.williamson at redhat.com>
> CC: Tony Krowiak <akrowiak at linux.ibm.com>
> CC: Pierre Morel <pmorel at linux.ibm.com>
> CC: Michael Roth <mdroth at linux.vnet.ibm.com>
> CC: Hailiang Zhang <zhang.zhanghailiang at huawei.com>
> CC: Juan Quintela <quintela at redhat.com>
> CC: "Dr. David Alan Gilbert" <dgilbert at redhat.com>
> CC: Luigi Rizzo <rizzo at iet.unipi.it>
> CC: Giuseppe Lettieri <g.lettieri at iet.unipi.it>
> CC: Vincenzo Maffione <v.maffione at gmail.com>
> CC: Jan Kiszka <jan.kiszka at siemens.com>
> CC: Anthony Green <green at moxielogic.com>
> CC: Stafford Horne <shorne at gmail.com>
> CC: Guan Xuetao <gxt at mprc.pku.edu.cn>
> CC: Max Filippov <jcmvbkbc at gmail.com>
> CC: qemu-block at nongnu.org
> CC: integration at gluster.org
> CC: sheepdog at lists.wpkg.org
> CC: qemu-arm at nongnu.org
> CC: xen-devel at lists.xenproject.org
> CC: qemu-ppc at nongnu.org
> CC: qemu-s390x at nongnu.org
> CC: qemu-riscv at nongnu.org
>
> include/block/nbd.h | 1 +
> include/block/snapshot.h | 2 +-
> include/monitor/hmp.h | 2 +-
> include/qapi/error.h | 69 ++++-
> include/qom/object.h | 4 +-
> target/ppc/kvm_ppc.h | 4 +-
> ui/vnc.h | 2 +-
> audio/audio.c | 12 +-
> backends/cryptodev-vhost-user.c | 10 +-
> backends/cryptodev.c | 25 +-
> backends/hostmem-file.c | 21 +-
> backends/hostmem-memfd.c | 18 +-
> backends/hostmem.c | 41 ++-
> backends/rng.c | 7 +-
> block.c | 225 +++++++---------
> block/backup.c | 1 +
> block/blkdebug.c | 36 ++-
> block/blklogwrites.c | 22 +-
> block/blkreplay.c | 7 +-
> block/blkverify.c | 17 +-
> block/block-backend.c | 19 +-
> block/commit.c | 7 +-
> block/crypto.c | 14 +-
> block/curl.c | 7 +-
> block/dirty-bitmap.c | 1 +
> block/file-posix.c | 79 +++---
> block/file-win32.c | 29 +-
> block/gluster.c | 69 +++--
> block/io.c | 12 +-
> block/iscsi.c | 36 ++-
> block/mirror.c | 19 +-
> block/nbd.c | 59 ++--
> block/nfs.c | 7 +-
> block/nvme.c | 19 +-
> block/parallels.c | 30 +--
> block/qapi.c | 26 +-
> block/qcow.c | 17 +-
> block/qcow2-bitmap.c | 9 +-
> block/qcow2.c | 98 +++----
> block/qed.c | 18 +-
> block/quorum.c | 23 +-
> block/raw-format.c | 7 +-
> block/rbd.c | 29 +-
> block/replication.c | 40 ++-
> block/sheepdog.c | 73 +++--
> block/snapshot.c | 20 +-
> block/ssh.c | 12 +-
> block/throttle-groups.c | 24 +-
> block/throttle.c | 7 +-
> block/vdi.c | 15 +-
> block/vhdx-log.c | 1 +
> block/vhdx.c | 22 +-
> block/vmdk.c | 41 ++-
> block/vpc.c | 28 +-
> block/vvfat.c | 12 +-
> block/vxhs.c | 23 +-
> blockdev.c | 252 ++++++++----------
> blockjob.c | 8 +-
> bootdevice.c | 31 +--
> chardev/char-socket.c | 7 +-
> chardev/char.c | 20 +-
> chardev/spice.c | 1 +
> crypto/block-luks.c | 56 ++--
> crypto/secret.c | 17 +-
> crypto/tlssession.c | 7 +-
> dump/dump-hmp-cmds.c | 4 +-
> dump/dump.c | 151 +++++------
> dump/win_dump.c | 29 +-
> exec.c | 21 +-
> hw/9pfs/9p-local.c | 12 +-
> hw/9pfs/9p-proxy.c | 5 +-
> hw/9pfs/9p.c | 1 +
> hw/acpi/core.c | 18 +-
> hw/acpi/cpu_hotplug.c | 2 +-
> hw/acpi/ich9.c | 30 +--
> hw/acpi/memory_hotplug.c | 7 +-
> hw/arm/allwinner-a10.c | 27 +-
> hw/arm/armv7m.c | 52 ++--
> hw/arm/aspeed_soc.c | 1 +
> hw/arm/bcm2835_peripherals.c | 85 +++---
> hw/arm/bcm2836.c | 41 ++-
> hw/arm/digic.c | 22 +-
> hw/arm/fsl-imx25.c | 62 ++---
> hw/arm/fsl-imx31.c | 57 ++--
> hw/arm/fsl-imx6.c | 81 +++---
> hw/arm/integratorcp.c | 7 +-
> hw/arm/msf2-soc.c | 22 +-
> hw/arm/nrf51_soc.c | 47 ++--
> hw/arm/smmu-common.c | 7 +-
> hw/arm/smmuv3.c | 7 +-
> hw/arm/stm32f205_soc.c | 39 ++-
> hw/arm/virt.c | 2 +
> hw/arm/xlnx-versal-virt.c | 7 +-
> hw/arm/xlnx-zynqmp.c | 86 +++---
> hw/audio/intel-hda.c | 13 +-
> hw/block/dataplane/virtio-blk.c | 1 +
> hw/block/dataplane/xen-block.c | 17 +-
> hw/block/fdc.c | 19 +-
> hw/block/onenand.c | 7 +-
> hw/block/pflash_cfi01.c | 7 +-
> hw/block/pflash_cfi02.c | 7 +-
> hw/block/vhost-user-blk.c | 6 +-
> hw/block/virtio-blk.c | 7 +-
> hw/block/xen-block.c | 119 ++++-----
> hw/char/debugcon.c | 7 +-
> hw/char/serial-pci-multi.c | 7 +-
> hw/char/serial-pci.c | 7 +-
> hw/char/virtio-serial-bus.c | 7 +-
> hw/core/bus.c | 15 +-
> hw/core/loader-fit.c | 7 +-
> hw/core/machine-hmp-cmds.c | 6 +-
> hw/core/machine.c | 21 +-
> hw/core/numa.c | 51 ++--
> hw/core/qdev-properties-system.c | 28 +-
> hw/core/qdev-properties.c | 89 +++----
> hw/core/qdev.c | 58 ++--
> hw/cpu/a15mpcore.c | 7 +-
> hw/cpu/a9mpcore.c | 27 +-
> hw/cpu/arm11mpcore.c | 22 +-
> hw/cpu/core.c | 14 +-
> hw/cpu/realview_mpcore.c | 12 +-
> hw/display/bcm2835_fb.c | 6 +-
> hw/display/qxl.c | 7 +-
> hw/display/virtio-gpu-base.c | 7 +-
> hw/display/virtio-gpu-pci.c | 7 +-
> hw/display/virtio-vga.c | 7 +-
> hw/dma/bcm2835_dma.c | 6 +-
> hw/dma/xilinx_axidma.c | 22 +-
> hw/gpio/aspeed_gpio.c | 7 +-
> hw/gpio/bcm2835_gpio.c | 10 +-
> hw/i386/amd_iommu.c | 14 +-
> hw/i386/pc.c | 120 ++++-----
> hw/ide/qdev.c | 16 +-
> hw/input/virtio-input.c | 14 +-
> hw/intc/apic_common.c | 7 +-
> hw/intc/arm_gic.c | 7 +-
> hw/intc/arm_gic_kvm.c | 12 +-
> hw/intc/arm_gicv3.c | 12 +-
> hw/intc/arm_gicv3_its_kvm.c | 7 +-
> hw/intc/arm_gicv3_kvm.c | 17 +-
> hw/intc/armv7m_nvic.c | 12 +-
> hw/intc/nios2_iic.c | 6 +-
> hw/intc/pnv_xive.c | 15 +-
> hw/intc/realview_gic.c | 7 +-
> hw/intc/s390_flic_kvm.c | 9 +-
> hw/intc/spapr_xive.c | 12 +-
> hw/intc/spapr_xive_kvm.c | 55 ++--
> hw/intc/xics.c | 28 +-
> hw/intc/xics_kvm.c | 30 +--
> hw/intc/xics_pnv.c | 7 +-
> hw/intc/xics_spapr.c | 7 +-
> hw/intc/xive.c | 27 +-
> hw/ipack/ipack.c | 5 +-
> hw/isa/pc87312.c | 7 +-
> hw/mem/memory-device.c | 20 +-
> hw/mem/nvdimm.c | 25 +-
> hw/mem/pc-dimm.c | 23 +-
> hw/microblaze/xlnx-zynqmp-pmu.c | 12 +-
> hw/mips/cps.c | 46 ++--
> hw/misc/bcm2835_mbox.c | 6 +-
> hw/misc/bcm2835_property.c | 10 +-
> hw/misc/ivshmem.c | 37 ++-
> hw/misc/macio/macio.c | 68 ++---
> hw/misc/msf2-sysreg.c | 1 +
> hw/misc/tmp105.c | 7 +-
> hw/misc/tmp421.c | 7 +-
> hw/net/dp8393x.c | 7 +-
> hw/net/eepro100.c | 7 +-
> hw/net/ne2000-isa.c | 17 +-
> hw/net/xilinx_axienet.c | 22 +-
> hw/nvram/fw_cfg.c | 14 +-
> hw/nvram/nrf51_nvm.c | 7 +-
> hw/pci-bridge/gen_pcie_root_port.c | 7 +-
> hw/pci-bridge/pci_bridge_dev.c | 13 +-
> hw/pci-bridge/pci_expander_bridge.c | 7 +-
> hw/pci-bridge/pcie_pci_bridge.c | 8 +-
> hw/pci-bridge/pcie_root_port.c | 1 +
> hw/pci-host/piix.c | 7 +-
> hw/pci/pci.c | 19 +-
> hw/pci/pcie.c | 7 +-
> hw/pci/shpc.c | 14 +-
> hw/ppc/e500.c | 7 +-
> hw/ppc/mac_newworld.c | 1 +
> hw/ppc/pnv.c | 109 ++++----
> hw/ppc/pnv_core.c | 23 +-
> hw/ppc/pnv_homer.c | 5 +-
> hw/ppc/pnv_lpc.c | 26 +-
> hw/ppc/pnv_occ.c | 5 +-
> hw/ppc/pnv_psi.c | 23 +-
> hw/ppc/spapr.c | 133 ++++-----
> hw/ppc/spapr_caps.c | 57 ++--
> hw/ppc/spapr_cpu_core.c | 36 ++-
> hw/ppc/spapr_drc.c | 48 ++--
> hw/ppc/spapr_irq.c | 98 +++----
> hw/ppc/spapr_pci.c | 97 +++----
> hw/ppc/spapr_vio.c | 12 +-
> hw/rdma/vmw/pvrdma_main.c | 1 +
> hw/riscv/riscv_hart.c | 7 +-
> hw/riscv/sifive_e.c | 7 +-
> hw/riscv/sifive_u.c | 11 +-
> hw/s390x/3270-ccw.c | 13 +-
> hw/s390x/css-bridge.c | 7 +-
> hw/s390x/css.c | 7 +-
> hw/s390x/event-facility.c | 2 +-
> hw/s390x/ipl.c | 24 +-
> hw/s390x/s390-ccw.c | 19 +-
> hw/s390x/s390-pci-bus.c | 37 ++-
> hw/s390x/s390-skeys.c | 7 +-
> hw/s390x/s390-stattrib.c | 3 +-
> hw/s390x/s390-virtio-ccw.c | 11 +-
> hw/s390x/sclp.c | 15 +-
> hw/s390x/tod-kvm.c | 14 +-
> hw/s390x/virtio-ccw-crypto.c | 7 +-
> hw/s390x/virtio-ccw-rng.c | 7 +-
> hw/s390x/virtio-ccw.c | 13 +-
> hw/scsi/esp-pci.c | 7 +-
> hw/scsi/megasas.c | 11 +-
> hw/scsi/mptsas.c | 13 +-
> hw/scsi/scsi-bus.c | 24 +-
> hw/scsi/scsi-disk.c | 8 +-
> hw/scsi/scsi-generic.c | 1 +
> hw/scsi/vhost-scsi.c | 12 +-
> hw/scsi/vhost-user-scsi.c | 7 +-
> hw/scsi/virtio-scsi.c | 7 +-
> hw/sd/milkymist-memcard.c | 11 +-
> hw/sd/sdhci-pci.c | 7 +-
> hw/sd/sdhci.c | 23 +-
> hw/sd/ssi-sd.c | 14 +-
> hw/smbios/smbios.c | 42 ++-
> hw/sparc/sun4m.c | 21 +-
> hw/sparc64/sun4u.c | 7 +-
> hw/timer/aspeed_timer.c | 6 +-
> hw/tpm/tpm_emulator.c | 8 +-
> hw/tpm/tpm_util.c | 7 +-
> hw/usb/bus.c | 37 ++-
> hw/usb/ccid-card-emulated.c | 1 +
> hw/usb/dev-network.c | 2 +-
> hw/usb/dev-serial.c | 7 +-
> hw/usb/dev-smartcard-reader.c | 14 +-
> hw/usb/dev-storage.c | 17 +-
> hw/usb/hcd-ohci-pci.c | 7 +-
> hw/usb/hcd-ohci.c | 14 +-
> hw/usb/hcd-uhci.c | 7 +-
> hw/usb/hcd-xhci.c | 13 +-
> hw/vfio/ap.c | 16 +-
> hw/vfio/ccw.c | 24 +-
> hw/vfio/common.c | 3 +
> hw/vfio/pci-quirks.c | 8 +-
> hw/vfio/pci.c | 42 ++-
> hw/vfio/platform.c | 1 +
> hw/virtio/vhost-vsock.c | 1 +
> hw/virtio/virtio-balloon.c | 35 ++-
> hw/virtio/virtio-bus.c | 17 +-
> hw/virtio/virtio-pci.c | 2 +
> hw/virtio/virtio-rng-pci.c | 7 +-
> hw/virtio/virtio-rng.c | 7 +-
> hw/virtio/virtio.c | 19 +-
> hw/watchdog/wdt_aspeed.c | 5 +-
> hw/xen/xen-backend.c | 7 +-
> hw/xen/xen-bus.c | 92 +++----
> hw/xen/xen-host-pci-device.c | 27 +-
> hw/xen/xen_pt.c | 25 +-
> hw/xen/xen_pt_config_init.c | 20 +-
> io/dns-resolver.c | 7 +-
> io/net-listener.c | 7 +-
> iothread.c | 27 +-
> job.c | 7 +-
> memory.c | 63 ++---
> memory_mapping.c | 7 +-
> migration/colo.c | 38 ++-
> migration/migration.c | 39 ++-
> migration/ram.c | 13 +-
> migration/rdma.c | 13 +-
> migration/savevm.c | 2 +
> migration/socket.c | 18 +-
> monitor/hmp-cmds.c | 155 ++++++-----
> monitor/misc.c | 9 +-
> monitor/qmp-cmds.c | 9 +-
> nbd/client.c | 5 +
> nbd/server.c | 5 +
> net/can/can_host.c | 7 +-
> net/dump.c | 15 +-
> net/filter-buffer.c | 15 +-
> net/filter.c | 7 +-
> net/net.c | 58 ++--
> net/netmap.c | 7 +-
> net/slirp.c | 7 +-
> net/tap.c | 47 ++--
> qapi/qapi-visit-core.c | 56 ++--
> qapi/qmp-dispatch.c | 7 +-
> qapi/string-input-visitor.c | 7 +-
> qdev-monitor.c | 69 +++--
> qga/commands-posix.c | 222 +++++++--------
> qga/commands-win32.c | 141 +++++-----
> qga/commands.c | 12 +-
> qom/object.c | 246 ++++++++---------
> qom/object_interfaces.c | 27 +-
> qom/qom-hmp-cmds.c | 4 +-
> qom/qom-qobject.c | 7 +-
> replication.c | 28 +-
> scsi/pr-manager-helper.c | 7 +-
> target/alpha/cpu.c | 7 +-
> target/arm/cpu.c | 7 +-
> target/arm/cpu64.c | 11 +-
> target/cris/cpu.c | 7 +-
> target/hppa/cpu.c | 7 +-
> target/i386/cpu.c | 117 ++++----
> target/lm32/cpu.c | 7 +-
> target/m68k/cpu.c | 7 +-
> target/microblaze/cpu.c | 7 +-
> target/mips/cpu.c | 7 +-
> target/moxie/cpu.c | 7 +-
> target/nios2/cpu.c | 7 +-
> target/openrisc/cpu.c | 7 +-
> target/ppc/compat.c | 20 +-
> target/ppc/kvm.c | 14 +-
> target/ppc/translate_init.inc.c | 26 +-
> target/riscv/cpu.c | 7 +-
> target/s390x/cpu.c | 26 +-
> target/s390x/cpu_models.c | 2 +
> target/sh4/cpu.c | 7 +-
> target/sparc/cpu.c | 14 +-
> target/tilegx/cpu.c | 7 +-
> target/tricore/cpu.c | 7 +-
> target/unicore32/cpu.c | 7 +-
> target/xtensa/cpu.c | 7 +-
> tests/test-image-locking.c | 7 +-
> tpm.c | 7 +-
> trace/qmp.c | 14 +-
> ui/input-barrier.c | 7 +-
> ui/input.c | 14 +-
> ui/vnc.c | 39 ++-
> util/error.c | 30 +--
> util/main-loop.c | 5 +-
> util/oslib-posix.c | 6 +-
> util/qemu-config.c | 29 +-
> util/qemu-option.c | 59 ++--
> util/qemu-sockets.c | 31 +--
> vl.c | 14 +-
> python/commit-per-subsystem.py | 204 ++++++++++++++
> scripts/coccinelle/auto-propagated-errp.cocci | 118 ++++++++
> 341 files changed, 3851 insertions(+), 4455 deletions(-)
> create mode 100755 python/commit-per-subsystem.py
> create mode 100644 scripts/coccinelle/auto-propagated-errp.cocci
>
--
Best regards,
Vladimir
More information about the sheepdog
mailing list