[GEDI] [RFC v5 000/126] error: auto propagated local_err
Vladimir Sementsov-Ogievskiy
vsementsov at virtuozzo.com
Fri Oct 11 16:03:46 UTC 2019
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
--
2.21.0
More information about the integration
mailing list