[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC v5 000/126] error: auto propagated local_err
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[RFC v5 000/126] error: auto propagated local_err |
Date: |
Fri, 11 Oct 2019 19:03:46 +0300 |
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 <address@hidden>
CC: "Gonglei (Arei)" <address@hidden>
CC: Eduardo Habkost <address@hidden>
CC: Igor Mammedov <address@hidden>
CC: Laurent Vivier <address@hidden>
CC: Amit Shah <address@hidden>
CC: Kevin Wolf <address@hidden>
CC: Max Reitz <address@hidden>
CC: John Snow <address@hidden>
CC: Ari Sundholm <address@hidden>
CC: Pavel Dovgalyuk <address@hidden>
CC: Paolo Bonzini <address@hidden>
CC: Stefan Hajnoczi <address@hidden>
CC: Fam Zheng <address@hidden>
CC: Stefan Weil <address@hidden>
CC: Ronnie Sahlberg <address@hidden>
CC: Peter Lieven <address@hidden>
CC: Eric Blake <address@hidden>
CC: "Denis V. Lunev" <address@hidden>
CC: Markus Armbruster <address@hidden>
CC: Alberto Garcia <address@hidden>
CC: Jason Dillaman <address@hidden>
CC: Wen Congyang <address@hidden>
CC: Xie Changlong <address@hidden>
CC: Liu Yuan <address@hidden>
CC: "Richard W.M. Jones" <address@hidden>
CC: Jeff Cody <address@hidden>
CC: "Marc-André Lureau" <address@hidden>
CC: "Daniel P. Berrangé" <address@hidden>
CC: Richard Henderson <address@hidden>
CC: Greg Kurz <address@hidden>
CC: "Michael S. Tsirkin" <address@hidden>
CC: Marcel Apfelbaum <address@hidden>
CC: Beniamino Galvani <address@hidden>
CC: Peter Maydell <address@hidden>
CC: "Cédric Le Goater" <address@hidden>
CC: Andrew Jeffery <address@hidden>
CC: Joel Stanley <address@hidden>
CC: Andrew Baumann <address@hidden>
CC: "Philippe Mathieu-Daudé" <address@hidden>
CC: Antony Pavlov <address@hidden>
CC: Jean-Christophe Dubois <address@hidden>
CC: Peter Chubb <address@hidden>
CC: Subbaraya Sundeep <address@hidden>
CC: Eric Auger <address@hidden>
CC: Alistair Francis <address@hidden>
CC: "Edgar E. Iglesias" <address@hidden>
CC: Stefano Stabellini <address@hidden>
CC: Anthony Perard <address@hidden>
CC: Paul Durrant <address@hidden>
CC: Paul Burton <address@hidden>
CC: Aleksandar Rikalo <address@hidden>
CC: Chris Wulff <address@hidden>
CC: Marek Vasut <address@hidden>
CC: David Gibson <address@hidden>
CC: Cornelia Huck <address@hidden>
CC: Halil Pasic <address@hidden>
CC: Christian Borntraeger <address@hidden>
CC: "Hervé Poussineau" <address@hidden>
CC: Xiao Guangrong <address@hidden>
CC: Aurelien Jarno <address@hidden>
CC: Aleksandar Markovic <address@hidden>
CC: Mark Cave-Ayland <address@hidden>
CC: Jason Wang <address@hidden>
CC: Laszlo Ersek <address@hidden>
CC: Yuval Shaia <address@hidden>
CC: Palmer Dabbelt <address@hidden>
CC: Sagar Karandikar <address@hidden>
CC: Bastian Koppelmann <address@hidden>
CC: David Hildenbrand <address@hidden>
CC: Thomas Huth <address@hidden>
CC: Eric Farman <address@hidden>
CC: Matthew Rosato <address@hidden>
CC: Hannes Reinecke <address@hidden>
CC: Michael Walle <address@hidden>
CC: Artyom Tarasenko <address@hidden>
CC: Stefan Berger <address@hidden>
CC: Samuel Thibault <address@hidden>
CC: Alex Williamson <address@hidden>
CC: Tony Krowiak <address@hidden>
CC: Pierre Morel <address@hidden>
CC: Michael Roth <address@hidden>
CC: Hailiang Zhang <address@hidden>
CC: Juan Quintela <address@hidden>
CC: "Dr. David Alan Gilbert" <address@hidden>
CC: Luigi Rizzo <address@hidden>
CC: Giuseppe Lettieri <address@hidden>
CC: Vincenzo Maffione <address@hidden>
CC: Jan Kiszka <address@hidden>
CC: Anthony Green <address@hidden>
CC: Stafford Horne <address@hidden>
CC: Guan Xuetao <address@hidden>
CC: Max Filippov <address@hidden>
CC: address@hidden
CC: address@hidden
CC: address@hidden
CC: address@hidden
CC: address@hidden
CC: address@hidden
CC: address@hidden
CC: address@hidden
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
- [RFC v5 000/126] error: auto propagated local_err,
Vladimir Sementsov-Ogievskiy <=
- [RFC v5 015/126] hw/s390x: rename Error ** parameter to more common errp, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 023/126] hw/vfio/ap: drop local_err from vfio_ap_realize, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 028/126] s390x: introduce ERRP_AUTO_PROPAGATE, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 051/126] vfio-ccw: introduce ERRP_AUTO_PROPAGATE, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 056/126] virtio-ccw: introduce ERRP_AUTO_PROPAGATE, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 037/126] S390 Machines: introduce ERRP_AUTO_PROPAGATE, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 030/126] kvm: introduce ERRP_AUTO_PROPAGATE, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 024/126] error: auto propagated local_err, Vladimir Sementsov-Ogievskiy, 2019/10/11
- [RFC v5 025/126] scripts: add coccinelle script to use auto propagated errp, Vladimir Sementsov-Ogievskiy, 2019/10/11