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
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@redhat.com>
CC: "Gonglei (Arei)" <arei.gonglei@huawei.com>
CC: Eduardo Habkost <ehabkost@redhat.com>
CC: Igor Mammedov <imammedo@redhat.com>
CC: Laurent Vivier <lvivier@redhat.com>
CC: Amit Shah <amit@kernel.org>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
CC: John Snow <jsnow@redhat.com>
CC: Ari Sundholm <ari@tuxera.com>
CC: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Fam Zheng <fam@euphon.net>
CC: Stefan Weil <sw@weilnetz.de>
CC: Ronnie Sahlberg <ronniesahlberg@gmail.com>
CC: Peter Lieven <pl@kamp.de>
CC: Eric Blake <eblake@redhat.com>
CC: "Denis V. Lunev" <den@openvz.org>
CC: Markus Armbruster <armbru@redhat.com>
CC: Alberto Garcia <berto@igalia.com>
CC: Jason Dillaman <dillaman@redhat.com>
CC: Wen Congyang <wencongyang2@huawei.com>
CC: Xie Changlong <xiechanglong.d@gmail.com>
CC: Liu Yuan <namei.unix@gmail.com>
CC: "Richard W.M. Jones" <rjones@redhat.com>
CC: Jeff Cody <codyprime@gmail.com>
CC: "Marc-André Lureau" <marcandre.lureau@redhat.com>
CC: "Daniel P. Berrangé" <berrange@redhat.com>
CC: Richard Henderson <rth@twiddle.net>
CC: Greg Kurz <groug@kaod.org>
CC: "Michael S. Tsirkin" <mst@redhat.com>
CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
CC: Beniamino Galvani <b.galvani@gmail.com>
CC: Peter Maydell <peter.maydell@linaro.org>
CC: "Cédric Le Goater" <clg@kaod.org>
CC: Andrew Jeffery <andrew@aj.id.au>
CC: Joel Stanley <joel@jms.id.au>
CC: Andrew Baumann <Andrew.Baumann@microsoft.com>
CC: "Philippe Mathieu-Daudé" <philmd@redhat.com>
CC: Antony Pavlov <antonynpavlov@gmail.com>
CC: Jean-Christophe Dubois <jcd@tribudubois.net>
CC: Peter Chubb <peter.chubb@nicta.com.au>
CC: Subbaraya Sundeep <sundeep.lkml@gmail.com>
CC: Eric Auger <eric.auger@redhat.com>
CC: Alistair Francis <alistair@alistair23.me>
CC: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Anthony Perard <anthony.perard@citrix.com>
CC: Paul Durrant <paul@xen.org>
CC: Paul Burton <pburton@wavecomp.com>
CC: Aleksandar Rikalo <arikalo@wavecomp.com>
CC: Chris Wulff <crwulff@gmail.com>
CC: Marek Vasut <marex@denx.de>
CC: David Gibson <david@gibson.dropbear.id.au>
CC: Cornelia Huck <cohuck@redhat.com>
CC: Halil Pasic <pasic@linux.ibm.com>
CC: Christian Borntraeger <borntraeger@de.ibm.com>
CC: "Hervé Poussineau" <hpoussin@reactos.org>
CC: Xiao Guangrong <xiaoguangrong.eric@gmail.com>
CC: Aurelien Jarno <aurelien@aurel32.net>
CC: Aleksandar Markovic <amarkovic@wavecomp.com>
CC: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: Jason Wang <jasowang@redhat.com>
CC: Laszlo Ersek <lersek@redhat.com>
CC: Yuval Shaia <yuval.shaia@oracle.com>
CC: Palmer Dabbelt <palmer@sifive.com>
CC: Sagar Karandikar <sagark@eecs.berkeley.edu>
CC: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
CC: David Hildenbrand <david@redhat.com>
CC: Thomas Huth <thuth@redhat.com>
CC: Eric Farman <farman@linux.ibm.com>
CC: Matthew Rosato <mjrosato@linux.ibm.com>
CC: Hannes Reinecke <hare@suse.com>
CC: Michael Walle <michael@walle.cc>
CC: Artyom Tarasenko <atar4qemu@gmail.com>
CC: Stefan Berger <stefanb@linux.ibm.com>
CC: Samuel Thibault <samuel.thibault@ens-lyon.org>
CC: Alex Williamson <alex.williamson@redhat.com>
CC: Tony Krowiak <akrowiak@linux.ibm.com>
CC: Pierre Morel <pmorel@linux.ibm.com>
CC: Michael Roth <mdroth@linux.vnet.ibm.com>
CC: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
CC: Juan Quintela <quintela@redhat.com>
CC: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
CC: Luigi Rizzo <rizzo@iet.unipi.it>
CC: Giuseppe Lettieri <g.lettieri@iet.unipi.it>
CC: Vincenzo Maffione <v.maffione@gmail.com>
CC: Jan Kiszka <jan.kiszka@siemens.com>
CC: Anthony Green <green@moxielogic.com>
CC: Stafford Horne <shorne@gmail.com>
CC: Guan Xuetao <gxt@mprc.pku.edu.cn>
CC: Max Filippov <jcmvbkbc@gmail.com>
CC: qemu-block@nongnu.org
CC: integration@gluster.org
CC: sheepdog@lists.wpkg.org
CC: qemu-arm@nongnu.org
CC: xen-devel@lists.xenproject.org
CC: qemu-ppc@nongnu.org
CC: qemu-s390x@nongnu.org
CC: qemu-riscv@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
Patchew URL: https://patchew.org/QEMU/20191011160552.22907-1-vsementsov@virtuozzo.com/
Hi,
This series failed the docker-quick@centos7 build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.
=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-centos7 V=1 NETWORK=1
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===
TEST iotest-qcow2: 013
TEST check-unit: tests/test-block-iothread
TEST check-unit: tests/test-image-locking
warning: Failed to get shared "consistent read" lock
Is another process using the image [/tmp/qtest.O66l3t]?
warning: Failed to get shared "consistent read" lock
Is another process using the image [/tmp/qtest.G0M9V8]?
TEST check-unit: tests/test-x86-cpuid
TEST check-unit: tests/test-xbzrle
---
TEST iotest-qcow2: 267
Failures: 054
Failed 1 of 108 iotests
make: *** [check-tests/check-block.sh] Error 1
make: *** Waiting for unfinished jobs....
TEST check-qtest-aarch64: tests/qos-test
Traceback (most recent call last):
---
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=2c55fb61a63a409382f2b3a99fca93d9', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-usvi8fob/src/docker-src.2019-10-11-22.00.10.1933:/var/tmp/qemu:z,ro', 'qemu:centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2.
filter=--filter=label=com.qemu.instance.uuid=2c55fb61a63a409382f2b3a99fca93d9
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-usvi8fob/src'
make: *** [docker-run-test-quick@centos7] Error 2
real 10m33.714s
user 0m8.360s
The full log is available at
http://patchew.org/logs/20191011160552.22907-1-vsementsov@virtuozzo.com/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
12.10.2019 5:10, no-reply@patchew.org wrote: > Patchew URL: https://patchew.org/QEMU/20191011160552.22907-1-vsementsov@virtuozzo.com/ > > > > Hi, > > This series failed the docker-quick@centos7 build test. Please find the testing commands and > their output below. If you have Docker installed, you can probably reproduce it > locally. > > === TEST SCRIPT BEGIN === > #!/bin/bash > make docker-image-centos7 V=1 NETWORK=1 > time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1 > === TEST SCRIPT END === > > TEST iotest-qcow2: 013 > TEST check-unit: tests/test-block-iothread > TEST check-unit: tests/test-image-locking > warning: Failed to get shared "consistent read" lock > Is another process using the image [/tmp/qtest.O66l3t]? > warning: Failed to get shared "consistent read" lock > Is another process using the image [/tmp/qtest.G0M9V8]? > TEST check-unit: tests/test-x86-cpuid > TEST check-unit: tests/test-xbzrle > --- > TEST iotest-qcow2: 267 > Failures: 054 > Failed 1 of 108 iotests > make: *** [check-tests/check-block.sh] Error 1 > make: *** Waiting for unfinished jobs.... > TEST check-qtest-aarch64: tests/qos-test > Traceback (most recent call last): > --- > raise CalledProcessError(retcode, cmd) > subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--label', 'com.qemu.instance.uuid=2c55fb61a63a409382f2b3a99fca93d9', '-u', '1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-usvi8fob/src/docker-src.2019-10-11-22.00.10.1933:/var/tmp/qemu:z,ro', 'qemu:centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2. > filter=--filter=label=com.qemu.instance.uuid=2c55fb61a63a409382f2b3a99fca93d9 > make[1]: *** [docker-run] Error 1 > make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-usvi8fob/src' > make: *** [docker-run-test-quick@centos7] Error 2 Something strange. Who knows, what is it? > > real 10m33.714s > user 0m8.360s > > > The full log is available at > http://patchew.org/logs/20191011160552.22907-1-vsementsov@virtuozzo.com/testing.docker-quick@centos7/?type=message. "" Not Found The requested resource was not found on this server. "" > --- > Email generated automatically by Patchew [https://patchew.org/]. > Please send your feedback to patchew-devel@redhat.com > -- Best regards, Vladimir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
Please accept my sincere apologies for taking so long to reply. A few thoughts before I dig deeper. Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> writes: > 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. It's a monster. Best to get it into full view before we commit to fighting it. > 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 Splitting up the monster can make fighting it easier. Your description suggests three high-level parts: Part 1: Preparation (makes sense by itself) Part 2: Error interface update (with rules what code should do now) Part 3: Make the code obey the new rules everywhere I hope we can get part 1 out of the way quickly. Diffstat: backends/cryptodev.c | 11 +--- block/nbd.c | 10 +-- block/snapshot.c | 4 +- dump/dump-hmp-cmds.c | 4 +- hw/9pfs/9p-local.c | 4 +- hw/9pfs/9p-proxy.c | 5 +- hw/core/loader-fit.c | 5 +- hw/core/machine-hmp-cmds.c | 6 +- hw/core/qdev.c | 28 ++++---- hw/i386/amd_iommu.c | 14 ++-- hw/ppc/spapr.c | 2 +- hw/s390x/event-facility.c | 2 +- hw/s390x/s390-stattrib.c | 3 +- hw/sd/sdhci.c | 2 +- hw/tpm/tpm_emulator.c | 8 +-- hw/usb/dev-network.c | 2 +- hw/vfio/ap.c | 16 +---- include/block/snapshot.h | 2 +- include/monitor/hmp.h | 2 +- include/qapi/error.h | 69 ++++++++++++++++++-- include/qom/object.h | 4 +- monitor/hmp-cmds.c | 155 ++++++++++++++++++++++----------------------- monitor/qmp-cmds.c | 2 +- net/net.c | 17 ++--- qdev-monitor.c | 28 ++++---- qga/commands-posix.c | 2 +- qga/commands-win32.c | 2 +- qga/commands.c | 12 ++-- qom/qom-hmp-cmds.c | 4 +- target/ppc/kvm.c | 6 +- target/ppc/kvm_ppc.h | 4 +- ui/vnc.c | 20 ++---- ui/vnc.h | 2 +- util/error.c | 30 ++++----- 34 files changed, 261 insertions(+), 226 deletions(-) At first glance, I can see bug fixes, non-mechanical cleanups, and mechanical cleanups. Within each of these three groups, we have related sub-groups. For instance, several patches clean up funny names for the common Error ** parameters. Several more rename "uncommon" Error ** parameters, to signal their uncommon role. I doubt splitting up these subgroups of related mechanical changes along subsystem lines is worthwhile. Part 2 needs careful interface review. Having part 3 ready helps there, because we can see rather than guess how the interface changes play out. We really want to get this part right from the start, because if we don't, we get to do part 3 again. Part 3 is what makes this a monster. I understand it's mechanical. We can merge it incrementally, but we do want to merge it all, and sooner rather than later, to avoid a mix of old and new error handling code. Such mixes inevitably confuse developers, and lead to new instances of the old patterns creeping in. I do have doubts about your automated split. I acknowledge maintainers of active subsystems may want to merge this on their own terms, to minimize disruption. Splitting off sub-monsters for them makes sense. Splitting off the long tail of less busy subsystems not so much; it'll only drag out the merging. Your list below shows 100 parts, and chasing their maintainers is not going to be a fun experience. Moreover, using MAINTAINERS to guide an automatic split is a cute idea, but it falls apart when MAINTAINERS attributes the same file to several subsystems, which is fairly common. A sane split requires human touch. Instead, I'd start with big subsystems with maintainers known to be sympathetic to this effort. Split off their sub-monsters, get them merged. Iterate until the remainder can be merged in one final push. > ==== > > 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. More cleverness, less code, avoids one kind of error (forgetting manual propagate when we should), risks another kind of error (automatic propagate when we shouldn't). Tradeoffs, but the general feeling among reviewers appears to be positive. > 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] Yes, broken by design, hurts users. > 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] Yes, broken by design, inconveniences developers. > ==== > > Generated patches split: > > misc > hw/misc/ivshmem.c > hw/misc/tmp105.c > hw/misc/tmp421.c [99 more...]
28.11.2019 11:54, Markus Armbruster wrote: > Please accept my sincere apologies for taking so long to reply. A few > thoughts before I dig deeper. > > Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> writes: > >> 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. > > It's a monster. Best to get it into full view before we commit to > fighting it. > >> 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 > > Splitting up the monster can make fighting it easier. > > Your description suggests three high-level parts: > > Part 1: Preparation (makes sense by itself) I already resent part 1 all patches (handling review comments) in separate as v6. If it is convenient, I can resend them in one series as v7. > Part 2: Error interface update (with rules what code should do now) Note, that patch 21 is actually from part2, not part1. So Part 2 is 21, 24, 25. So I wait for your comments and resend (if needed) as separate small series. And 26 is auto-patch-splitter, but we don't need it now, if we are going to start from several big subsystems. > Part 3: Make the code obey the new rules everywhere > > I hope we can get part 1 out of the way quickly. Diffstat: > > backends/cryptodev.c | 11 +--- > block/nbd.c | 10 +-- > block/snapshot.c | 4 +- > dump/dump-hmp-cmds.c | 4 +- > hw/9pfs/9p-local.c | 4 +- > hw/9pfs/9p-proxy.c | 5 +- > hw/core/loader-fit.c | 5 +- > hw/core/machine-hmp-cmds.c | 6 +- > hw/core/qdev.c | 28 ++++---- > hw/i386/amd_iommu.c | 14 ++-- > hw/ppc/spapr.c | 2 +- > hw/s390x/event-facility.c | 2 +- > hw/s390x/s390-stattrib.c | 3 +- > hw/sd/sdhci.c | 2 +- > hw/tpm/tpm_emulator.c | 8 +-- > hw/usb/dev-network.c | 2 +- > hw/vfio/ap.c | 16 +---- > include/block/snapshot.h | 2 +- > include/monitor/hmp.h | 2 +- > include/qapi/error.h | 69 ++++++++++++++++++-- > include/qom/object.h | 4 +- > monitor/hmp-cmds.c | 155 ++++++++++++++++++++++----------------------- > monitor/qmp-cmds.c | 2 +- > net/net.c | 17 ++--- > qdev-monitor.c | 28 ++++---- > qga/commands-posix.c | 2 +- > qga/commands-win32.c | 2 +- > qga/commands.c | 12 ++-- > qom/qom-hmp-cmds.c | 4 +- > target/ppc/kvm.c | 6 +- > target/ppc/kvm_ppc.h | 4 +- > ui/vnc.c | 20 ++---- > ui/vnc.h | 2 +- > util/error.c | 30 ++++----- > 34 files changed, 261 insertions(+), 226 deletions(-) > > At first glance, I can see bug fixes, non-mechanical cleanups, and > mechanical cleanups. > > Within each of these three groups, we have related sub-groups. For > instance, several patches clean up funny names for the common Error ** > parameters. Several more rename "uncommon" Error ** parameters, to > signal their uncommon role. I doubt splitting up these subgroups of > related mechanical changes along subsystem lines is worthwhile. > > Part 2 needs careful interface review. Having part 3 ready helps there, > because we can see rather than guess how the interface changes play out. > We really want to get this part right from the start, because if we > don't, we get to do part 3 again. > > Part 3 is what makes this a monster. I understand it's mechanical. We > can merge it incrementally, but we do want to merge it all, and sooner > rather than later, to avoid a mix of old and new error handling code. > Such mixes inevitably confuse developers, and lead to new instances of > the old patterns creeping in. > > I do have doubts about your automated split. > > I acknowledge maintainers of active subsystems may want to merge this on > their own terms, to minimize disruption. Splitting off sub-monsters for > them makes sense. Splitting off the long tail of less busy subsystems > not so much; it'll only drag out the merging. Your list below shows 100 > parts, and chasing their maintainers is not going to be a fun > experience. > > Moreover, using MAINTAINERS to guide an automatic split is a cute idea, > but it falls apart when MAINTAINERS attributes the same file to several > subsystems, which is fairly common. A sane split requires human touch. > > Instead, I'd start with big subsystems with maintainers known to be > sympathetic to this effort. Split off their sub-monsters, get them > merged. Iterate until the remainder can be merged in one final push. Do you mean to send them as separate per-subsystem series, or all in one, but limited to some subsystems? > >> ==== >> >> 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. > > More cleverness, less code, avoids one kind of error (forgetting manual > propagate when we should), risks another kind of error (automatic > propagate when we shouldn't). Tradeoffs, but the general feeling among > reviewers appears to be positive. > >> 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] > > Yes, broken by design, hurts users. > >> 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] > > Yes, broken by design, inconveniences developers. > >> ==== >> >> Generated patches split: >> >> misc >> hw/misc/ivshmem.c >> hw/misc/tmp105.c >> hw/misc/tmp421.c > [99 more...] > Thanks! -- Best regards, Vladimir
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> writes: > 28.11.2019 11:54, Markus Armbruster wrote: >> Please accept my sincere apologies for taking so long to reply. A few >> thoughts before I dig deeper. >> >> Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> writes: >> >>> 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. >> >> It's a monster. Best to get it into full view before we commit to >> fighting it. >> >>> 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 >> >> Splitting up the monster can make fighting it easier. >> >> Your description suggests three high-level parts: >> >> Part 1: Preparation (makes sense by itself) > > I already resent part 1 all patches (handling review comments) in separate as v6. > If it is convenient, I can resend them in one series as v7. Recommend to await review. The more we can merge without another respin, the better. >> Part 2: Error interface update (with rules what code should do now) > > Note, that patch 21 is actually from part2, not part1. > So Part 2 is 21, 24, 25. Thanks for the heads-up. > So I wait for your comments and resend (if needed) as separate small series. > > And 26 is auto-patch-splitter, but we don't need it now, if we are going > to start from several big subsystems. > >> Part 3: Make the code obey the new rules everywhere >> >> I hope we can get part 1 out of the way quickly. Diffstat: >> >> backends/cryptodev.c | 11 +--- >> block/nbd.c | 10 +-- >> block/snapshot.c | 4 +- >> dump/dump-hmp-cmds.c | 4 +- >> hw/9pfs/9p-local.c | 4 +- >> hw/9pfs/9p-proxy.c | 5 +- >> hw/core/loader-fit.c | 5 +- >> hw/core/machine-hmp-cmds.c | 6 +- >> hw/core/qdev.c | 28 ++++---- >> hw/i386/amd_iommu.c | 14 ++-- >> hw/ppc/spapr.c | 2 +- >> hw/s390x/event-facility.c | 2 +- >> hw/s390x/s390-stattrib.c | 3 +- >> hw/sd/sdhci.c | 2 +- >> hw/tpm/tpm_emulator.c | 8 +-- >> hw/usb/dev-network.c | 2 +- >> hw/vfio/ap.c | 16 +---- >> include/block/snapshot.h | 2 +- >> include/monitor/hmp.h | 2 +- >> include/qapi/error.h | 69 ++++++++++++++++++-- >> include/qom/object.h | 4 +- >> monitor/hmp-cmds.c | 155 ++++++++++++++++++++++----------------------- >> monitor/qmp-cmds.c | 2 +- >> net/net.c | 17 ++--- >> qdev-monitor.c | 28 ++++---- >> qga/commands-posix.c | 2 +- >> qga/commands-win32.c | 2 +- >> qga/commands.c | 12 ++-- >> qom/qom-hmp-cmds.c | 4 +- >> target/ppc/kvm.c | 6 +- >> target/ppc/kvm_ppc.h | 4 +- >> ui/vnc.c | 20 ++---- >> ui/vnc.h | 2 +- >> util/error.c | 30 ++++----- >> 34 files changed, 261 insertions(+), 226 deletions(-) >> >> At first glance, I can see bug fixes, non-mechanical cleanups, and >> mechanical cleanups. >> >> Within each of these three groups, we have related sub-groups. For >> instance, several patches clean up funny names for the common Error ** >> parameters. Several more rename "uncommon" Error ** parameters, to >> signal their uncommon role. I doubt splitting up these subgroups of >> related mechanical changes along subsystem lines is worthwhile. >> >> Part 2 needs careful interface review. Having part 3 ready helps there, >> because we can see rather than guess how the interface changes play out. >> We really want to get this part right from the start, because if we >> don't, we get to do part 3 again. >> >> Part 3 is what makes this a monster. I understand it's mechanical. We >> can merge it incrementally, but we do want to merge it all, and sooner >> rather than later, to avoid a mix of old and new error handling code. >> Such mixes inevitably confuse developers, and lead to new instances of >> the old patterns creeping in. >> >> I do have doubts about your automated split. >> >> I acknowledge maintainers of active subsystems may want to merge this on >> their own terms, to minimize disruption. Splitting off sub-monsters for >> them makes sense. Splitting off the long tail of less busy subsystems >> not so much; it'll only drag out the merging. Your list below shows 100 >> parts, and chasing their maintainers is not going to be a fun >> experience. >> >> Moreover, using MAINTAINERS to guide an automatic split is a cute idea, >> but it falls apart when MAINTAINERS attributes the same file to several >> subsystems, which is fairly common. A sane split requires human touch. >> >> Instead, I'd start with big subsystems with maintainers known to be >> sympathetic to this effort. Split off their sub-monsters, get them >> merged. Iterate until the remainder can be merged in one final push. > > Do you mean to send them as separate per-subsystem series, or all in one, > but limited to some subsystems? Let's make it as easy as we can both for the subsystem maintainers and for the people trying to track all of it. When a subsystem takes multiple patches, I'd consider an independent series to save the maintainer the trouble of extracting multiple patches from a larger series. For the ones that take just one patch, I'd consider an omnibus series. Extracting a single patch is no harder than applying a series, but tracking one omnibus is easier than a dozen lone patches. There's no clear line between "busy" and "less busy" subsystem. Just start with some obviously busy ones, then iterate. Each iteration should be large enough to be worth the overhead, yet small enough not to scare off reviewers :) Trust your judgement! [...]
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@redhat.com> > CC: "Gonglei (Arei)" <arei.gonglei@huawei.com> > CC: Eduardo Habkost <ehabkost@redhat.com> > CC: Igor Mammedov <imammedo@redhat.com> > CC: Laurent Vivier <lvivier@redhat.com> > CC: Amit Shah <amit@kernel.org> > CC: Kevin Wolf <kwolf@redhat.com> > CC: Max Reitz <mreitz@redhat.com> > CC: John Snow <jsnow@redhat.com> > CC: Ari Sundholm <ari@tuxera.com> > CC: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> > CC: Paolo Bonzini <pbonzini@redhat.com> > CC: Stefan Hajnoczi <stefanha@redhat.com> > CC: Fam Zheng <fam@euphon.net> > CC: Stefan Weil <sw@weilnetz.de> > CC: Ronnie Sahlberg <ronniesahlberg@gmail.com> > CC: Peter Lieven <pl@kamp.de> > CC: Eric Blake <eblake@redhat.com> > CC: "Denis V. Lunev" <den@openvz.org> > CC: Markus Armbruster <armbru@redhat.com> > CC: Alberto Garcia <berto@igalia.com> > CC: Jason Dillaman <dillaman@redhat.com> > CC: Wen Congyang <wencongyang2@huawei.com> > CC: Xie Changlong <xiechanglong.d@gmail.com> > CC: Liu Yuan <namei.unix@gmail.com> > CC: "Richard W.M. Jones" <rjones@redhat.com> > CC: Jeff Cody <codyprime@gmail.com> > CC: "Marc-André Lureau" <marcandre.lureau@redhat.com> > CC: "Daniel P. Berrangé" <berrange@redhat.com> > CC: Richard Henderson <rth@twiddle.net> > CC: Greg Kurz <groug@kaod.org> > CC: "Michael S. Tsirkin" <mst@redhat.com> > CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > CC: Beniamino Galvani <b.galvani@gmail.com> > CC: Peter Maydell <peter.maydell@linaro.org> > CC: "Cédric Le Goater" <clg@kaod.org> > CC: Andrew Jeffery <andrew@aj.id.au> > CC: Joel Stanley <joel@jms.id.au> > CC: Andrew Baumann <Andrew.Baumann@microsoft.com> > CC: "Philippe Mathieu-Daudé" <philmd@redhat.com> > CC: Antony Pavlov <antonynpavlov@gmail.com> > CC: Jean-Christophe Dubois <jcd@tribudubois.net> > CC: Peter Chubb <peter.chubb@nicta.com.au> > CC: Subbaraya Sundeep <sundeep.lkml@gmail.com> > CC: Eric Auger <eric.auger@redhat.com> > CC: Alistair Francis <alistair@alistair23.me> > CC: "Edgar E. Iglesias" <edgar.iglesias@gmail.com> > CC: Stefano Stabellini <sstabellini@kernel.org> > CC: Anthony Perard <anthony.perard@citrix.com> > CC: Paul Durrant <paul@xen.org> > CC: Paul Burton <pburton@wavecomp.com> > CC: Aleksandar Rikalo <arikalo@wavecomp.com> > CC: Chris Wulff <crwulff@gmail.com> > CC: Marek Vasut <marex@denx.de> > CC: David Gibson <david@gibson.dropbear.id.au> > CC: Cornelia Huck <cohuck@redhat.com> > CC: Halil Pasic <pasic@linux.ibm.com> > CC: Christian Borntraeger <borntraeger@de.ibm.com> > CC: "Hervé Poussineau" <hpoussin@reactos.org> > CC: Xiao Guangrong <xiaoguangrong.eric@gmail.com> > CC: Aurelien Jarno <aurelien@aurel32.net> > CC: Aleksandar Markovic <amarkovic@wavecomp.com> > CC: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > CC: Jason Wang <jasowang@redhat.com> > CC: Laszlo Ersek <lersek@redhat.com> > CC: Yuval Shaia <yuval.shaia@oracle.com> > CC: Palmer Dabbelt <palmer@sifive.com> > CC: Sagar Karandikar <sagark@eecs.berkeley.edu> > CC: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> > CC: David Hildenbrand <david@redhat.com> > CC: Thomas Huth <thuth@redhat.com> > CC: Eric Farman <farman@linux.ibm.com> > CC: Matthew Rosato <mjrosato@linux.ibm.com> > CC: Hannes Reinecke <hare@suse.com> > CC: Michael Walle <michael@walle.cc> > CC: Artyom Tarasenko <atar4qemu@gmail.com> > CC: Stefan Berger <stefanb@linux.ibm.com> > CC: Samuel Thibault <samuel.thibault@ens-lyon.org> > CC: Alex Williamson <alex.williamson@redhat.com> > CC: Tony Krowiak <akrowiak@linux.ibm.com> > CC: Pierre Morel <pmorel@linux.ibm.com> > CC: Michael Roth <mdroth@linux.vnet.ibm.com> > CC: Hailiang Zhang <zhang.zhanghailiang@huawei.com> > CC: Juan Quintela <quintela@redhat.com> > CC: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > CC: Luigi Rizzo <rizzo@iet.unipi.it> > CC: Giuseppe Lettieri <g.lettieri@iet.unipi.it> > CC: Vincenzo Maffione <v.maffione@gmail.com> > CC: Jan Kiszka <jan.kiszka@siemens.com> > CC: Anthony Green <green@moxielogic.com> > CC: Stafford Horne <shorne@gmail.com> > CC: Guan Xuetao <gxt@mprc.pku.edu.cn> > CC: Max Filippov <jcmvbkbc@gmail.com> > CC: qemu-block@nongnu.org > CC: integration@gluster.org > CC: sheepdog@lists.wpkg.org > CC: qemu-arm@nongnu.org > CC: xen-devel@lists.xenproject.org > CC: qemu-ppc@nongnu.org > CC: qemu-s390x@nongnu.org > CC: qemu-riscv@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
Hi On Fri, Nov 8, 2019 at 7:31 PM Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> wrote: > > 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? I don't think we have well established rules for whole-tree cleanups like this. In the past, several cleanup series got lost. It will take ages to get every subsystem maintainer to review the patches. Most likely, since they are quite systematic, there isn't much to say and it is easy to miss something that has some hidden ramifications. Perhaps whole-tree cleanups should require at least 2 reviewers to bypass the subsytem maintainer review? But my past experience with this kind of exercice doesn't encourage me, and probably I am not the only one. > > 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@redhat.com> > > CC: "Gonglei (Arei)" <arei.gonglei@huawei.com> > > CC: Eduardo Habkost <ehabkost@redhat.com> > > CC: Igor Mammedov <imammedo@redhat.com> > > CC: Laurent Vivier <lvivier@redhat.com> > > CC: Amit Shah <amit@kernel.org> > > CC: Kevin Wolf <kwolf@redhat.com> > > CC: Max Reitz <mreitz@redhat.com> > > CC: John Snow <jsnow@redhat.com> > > CC: Ari Sundholm <ari@tuxera.com> > > CC: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> > > CC: Paolo Bonzini <pbonzini@redhat.com> > > CC: Stefan Hajnoczi <stefanha@redhat.com> > > CC: Fam Zheng <fam@euphon.net> > > CC: Stefan Weil <sw@weilnetz.de> > > CC: Ronnie Sahlberg <ronniesahlberg@gmail.com> > > CC: Peter Lieven <pl@kamp.de> > > CC: Eric Blake <eblake@redhat.com> > > CC: "Denis V. Lunev" <den@openvz.org> > > CC: Markus Armbruster <armbru@redhat.com> > > CC: Alberto Garcia <berto@igalia.com> > > CC: Jason Dillaman <dillaman@redhat.com> > > CC: Wen Congyang <wencongyang2@huawei.com> > > CC: Xie Changlong <xiechanglong.d@gmail.com> > > CC: Liu Yuan <namei.unix@gmail.com> > > CC: "Richard W.M. Jones" <rjones@redhat.com> > > CC: Jeff Cody <codyprime@gmail.com> > > CC: "Marc-André Lureau" <marcandre.lureau@redhat.com> > > CC: "Daniel P. Berrangé" <berrange@redhat.com> > > CC: Richard Henderson <rth@twiddle.net> > > CC: Greg Kurz <groug@kaod.org> > > CC: "Michael S. Tsirkin" <mst@redhat.com> > > CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > > CC: Beniamino Galvani <b.galvani@gmail.com> > > CC: Peter Maydell <peter.maydell@linaro.org> > > CC: "Cédric Le Goater" <clg@kaod.org> > > CC: Andrew Jeffery <andrew@aj.id.au> > > CC: Joel Stanley <joel@jms.id.au> > > CC: Andrew Baumann <Andrew.Baumann@microsoft.com> > > CC: "Philippe Mathieu-Daudé" <philmd@redhat.com> > > CC: Antony Pavlov <antonynpavlov@gmail.com> > > CC: Jean-Christophe Dubois <jcd@tribudubois.net> > > CC: Peter Chubb <peter.chubb@nicta.com.au> > > CC: Subbaraya Sundeep <sundeep.lkml@gmail.com> > > CC: Eric Auger <eric.auger@redhat.com> > > CC: Alistair Francis <alistair@alistair23.me> > > CC: "Edgar E. Iglesias" <edgar.iglesias@gmail.com> > > CC: Stefano Stabellini <sstabellini@kernel.org> > > CC: Anthony Perard <anthony.perard@citrix.com> > > CC: Paul Durrant <paul@xen.org> > > CC: Paul Burton <pburton@wavecomp.com> > > CC: Aleksandar Rikalo <arikalo@wavecomp.com> > > CC: Chris Wulff <crwulff@gmail.com> > > CC: Marek Vasut <marex@denx.de> > > CC: David Gibson <david@gibson.dropbear.id.au> > > CC: Cornelia Huck <cohuck@redhat.com> > > CC: Halil Pasic <pasic@linux.ibm.com> > > CC: Christian Borntraeger <borntraeger@de.ibm.com> > > CC: "Hervé Poussineau" <hpoussin@reactos.org> > > CC: Xiao Guangrong <xiaoguangrong.eric@gmail.com> > > CC: Aurelien Jarno <aurelien@aurel32.net> > > CC: Aleksandar Markovic <amarkovic@wavecomp.com> > > CC: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> > > CC: Jason Wang <jasowang@redhat.com> > > CC: Laszlo Ersek <lersek@redhat.com> > > CC: Yuval Shaia <yuval.shaia@oracle.com> > > CC: Palmer Dabbelt <palmer@sifive.com> > > CC: Sagar Karandikar <sagark@eecs.berkeley.edu> > > CC: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> > > CC: David Hildenbrand <david@redhat.com> > > CC: Thomas Huth <thuth@redhat.com> > > CC: Eric Farman <farman@linux.ibm.com> > > CC: Matthew Rosato <mjrosato@linux.ibm.com> > > CC: Hannes Reinecke <hare@suse.com> > > CC: Michael Walle <michael@walle.cc> > > CC: Artyom Tarasenko <atar4qemu@gmail.com> > > CC: Stefan Berger <stefanb@linux.ibm.com> > > CC: Samuel Thibault <samuel.thibault@ens-lyon.org> > > CC: Alex Williamson <alex.williamson@redhat.com> > > CC: Tony Krowiak <akrowiak@linux.ibm.com> > > CC: Pierre Morel <pmorel@linux.ibm.com> > > CC: Michael Roth <mdroth@linux.vnet.ibm.com> > > CC: Hailiang Zhang <zhang.zhanghailiang@huawei.com> > > CC: Juan Quintela <quintela@redhat.com> > > CC: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > CC: Luigi Rizzo <rizzo@iet.unipi.it> > > CC: Giuseppe Lettieri <g.lettieri@iet.unipi.it> > > CC: Vincenzo Maffione <v.maffione@gmail.com> > > CC: Jan Kiszka <jan.kiszka@siemens.com> > > CC: Anthony Green <green@moxielogic.com> > > CC: Stafford Horne <shorne@gmail.com> > > CC: Guan Xuetao <gxt@mprc.pku.edu.cn> > > CC: Max Filippov <jcmvbkbc@gmail.com> > > CC: qemu-block@nongnu.org > > CC: integration@gluster.org > > CC: sheepdog@lists.wpkg.org > > CC: qemu-arm@nongnu.org > > CC: xen-devel@lists.xenproject.org > > CC: qemu-ppc@nongnu.org > > CC: qemu-s390x@nongnu.org > > CC: qemu-riscv@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
On Fri, 8 Nov 2019 22:57:25 +0400 Marc-André Lureau <marcandre.lureau@redhat.com> wrote: > Hi > > On Fri, Nov 8, 2019 at 7:31 PM Vladimir Sementsov-Ogievskiy > <vsementsov@virtuozzo.com> wrote: > > > > 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? > > I don't think we have well established rules for whole-tree cleanups > like this. In the past, several cleanup series got lost. Yes, it is always problematic if a series touches a lot of different subsystems. > > It will take ages to get every subsystem maintainer to review the > patches. Most likely, since they are quite systematic, there isn't > much to say and it is easy to miss something that has some hidden > ramifications. Perhaps whole-tree cleanups should require at least 2 > reviewers to bypass the subsytem maintainer review? But my past > experience with this kind of exercice doesn't encourage me, and > probably I am not the only one. It's not just the reviews; it's easy to miss compile problems on less mainstream architectures (and even easier to miss functional problems there, although they are probably less likely with automated rework.) CI can probably help, but that's something for the future. Anyway, I've now gotten around to that series; spotted one problem in s390x code, I think. One thing that's helpful for such a large series is a git branch that makes it easy to give the series a quick go. (You can use patchew, but it takes time before it gets all mails, so just pushing it somewhere and letting people know is a good idea anyway.)
12.11.2019 16:46, Cornelia Huck wrote: > On Fri, 8 Nov 2019 22:57:25 +0400 > Marc-André Lureau <marcandre.lureau@redhat.com> wrote: > >> Hi >> >> On Fri, Nov 8, 2019 at 7:31 PM Vladimir Sementsov-Ogievskiy >> <vsementsov@virtuozzo.com> wrote: >>> >>> 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? >> >> I don't think we have well established rules for whole-tree cleanups >> like this. In the past, several cleanup series got lost. > > Yes, it is always problematic if a series touches a lot of different > subsystems. > >> >> It will take ages to get every subsystem maintainer to review the >> patches. Most likely, since they are quite systematic, there isn't >> much to say and it is easy to miss something that has some hidden >> ramifications. Perhaps whole-tree cleanups should require at least 2 >> reviewers to bypass the subsytem maintainer review? But my past >> experience with this kind of exercice doesn't encourage me, and >> probably I am not the only one. > > It's not just the reviews; it's easy to miss compile problems on less > mainstream architectures (and even easier to miss functional problems > there, although they are probably less likely with automated rework.) > CI can probably help, but that's something for the future. > > Anyway, I've now gotten around to that series; spotted one problem in > s390x code, I think. > > One thing that's helpful for such a large series is a git branch that > makes it easy to give the series a quick go. (You can use patchew, but > it takes time before it gets all mails, so just pushing it somewhere > and letting people know is a good idea anyway.) > Thanks for review! The series are posted here: https://src.openvz.org/users/vsementsov/repos/qemu/browse https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-v5 -- Best regards, Vladimir
Okay...
I think that:
1. A lot of efforts (not only my, I think reviewing is already exceeded generation efforts)
are made, it would be sad to lose them.
2. It's safe enough to apply only part of generated patches: we just fix error_abort/error_fatal
in more popular subsystems, what's wrong with that? Why not to cover 80% cases by 20% efforts?
3. It's obviously impossible to merge the whole series. A lot of time passed, series diverges.
So I propose the following plan:
1. I resend small separate series of preparation patches per maintainer. They are good anyway.
2. We commit patch with macro (changing MUST to SHOULD in documentation) and coccinelle script.
(or that may be combined with the first series from [3.])
3. When one of preparations taken to maintainer's tree, I send generated patches for
its maintainer.
If no objections during a week, I'll start that plan, hope someone will support it.
08.11.2019 18:30, Vladimir Sementsov-Ogievskiy wrote:
> 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@redhat.com>
>> CC: "Gonglei (Arei)" <arei.gonglei@huawei.com>
>> CC: Eduardo Habkost <ehabkost@redhat.com>
>> CC: Igor Mammedov <imammedo@redhat.com>
>> CC: Laurent Vivier <lvivier@redhat.com>
>> CC: Amit Shah <amit@kernel.org>
>> CC: Kevin Wolf <kwolf@redhat.com>
>> CC: Max Reitz <mreitz@redhat.com>
>> CC: John Snow <jsnow@redhat.com>
>> CC: Ari Sundholm <ari@tuxera.com>
>> CC: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
>> CC: Paolo Bonzini <pbonzini@redhat.com>
>> CC: Stefan Hajnoczi <stefanha@redhat.com>
>> CC: Fam Zheng <fam@euphon.net>
>> CC: Stefan Weil <sw@weilnetz.de>
>> CC: Ronnie Sahlberg <ronniesahlberg@gmail.com>
>> CC: Peter Lieven <pl@kamp.de>
>> CC: Eric Blake <eblake@redhat.com>
>> CC: "Denis V. Lunev" <den@openvz.org>
>> CC: Markus Armbruster <armbru@redhat.com>
>> CC: Alberto Garcia <berto@igalia.com>
>> CC: Jason Dillaman <dillaman@redhat.com>
>> CC: Wen Congyang <wencongyang2@huawei.com>
>> CC: Xie Changlong <xiechanglong.d@gmail.com>
>> CC: Liu Yuan <namei.unix@gmail.com>
>> CC: "Richard W.M. Jones" <rjones@redhat.com>
>> CC: Jeff Cody <codyprime@gmail.com>
>> CC: "Marc-André Lureau" <marcandre.lureau@redhat.com>
>> CC: "Daniel P. Berrangé" <berrange@redhat.com>
>> CC: Richard Henderson <rth@twiddle.net>
>> CC: Greg Kurz <groug@kaod.org>
>> CC: "Michael S. Tsirkin" <mst@redhat.com>
>> CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
>> CC: Beniamino Galvani <b.galvani@gmail.com>
>> CC: Peter Maydell <peter.maydell@linaro.org>
>> CC: "Cédric Le Goater" <clg@kaod.org>
>> CC: Andrew Jeffery <andrew@aj.id.au>
>> CC: Joel Stanley <joel@jms.id.au>
>> CC: Andrew Baumann <Andrew.Baumann@microsoft.com>
>> CC: "Philippe Mathieu-Daudé" <philmd@redhat.com>
>> CC: Antony Pavlov <antonynpavlov@gmail.com>
>> CC: Jean-Christophe Dubois <jcd@tribudubois.net>
>> CC: Peter Chubb <peter.chubb@nicta.com.au>
>> CC: Subbaraya Sundeep <sundeep.lkml@gmail.com>
>> CC: Eric Auger <eric.auger@redhat.com>
>> CC: Alistair Francis <alistair@alistair23.me>
>> CC: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Anthony Perard <anthony.perard@citrix.com>
>> CC: Paul Durrant <paul@xen.org>
>> CC: Paul Burton <pburton@wavecomp.com>
>> CC: Aleksandar Rikalo <arikalo@wavecomp.com>
>> CC: Chris Wulff <crwulff@gmail.com>
>> CC: Marek Vasut <marex@denx.de>
>> CC: David Gibson <david@gibson.dropbear.id.au>
>> CC: Cornelia Huck <cohuck@redhat.com>
>> CC: Halil Pasic <pasic@linux.ibm.com>
>> CC: Christian Borntraeger <borntraeger@de.ibm.com>
>> CC: "Hervé Poussineau" <hpoussin@reactos.org>
>> CC: Xiao Guangrong <xiaoguangrong.eric@gmail.com>
>> CC: Aurelien Jarno <aurelien@aurel32.net>
>> CC: Aleksandar Markovic <amarkovic@wavecomp.com>
>> CC: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>> CC: Jason Wang <jasowang@redhat.com>
>> CC: Laszlo Ersek <lersek@redhat.com>
>> CC: Yuval Shaia <yuval.shaia@oracle.com>
>> CC: Palmer Dabbelt <palmer@sifive.com>
>> CC: Sagar Karandikar <sagark@eecs.berkeley.edu>
>> CC: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
>> CC: David Hildenbrand <david@redhat.com>
>> CC: Thomas Huth <thuth@redhat.com>
>> CC: Eric Farman <farman@linux.ibm.com>
>> CC: Matthew Rosato <mjrosato@linux.ibm.com>
>> CC: Hannes Reinecke <hare@suse.com>
>> CC: Michael Walle <michael@walle.cc>
>> CC: Artyom Tarasenko <atar4qemu@gmail.com>
>> CC: Stefan Berger <stefanb@linux.ibm.com>
>> CC: Samuel Thibault <samuel.thibault@ens-lyon.org>
>> CC: Alex Williamson <alex.williamson@redhat.com>
>> CC: Tony Krowiak <akrowiak@linux.ibm.com>
>> CC: Pierre Morel <pmorel@linux.ibm.com>
>> CC: Michael Roth <mdroth@linux.vnet.ibm.com>
>> CC: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
>> CC: Juan Quintela <quintela@redhat.com>
>> CC: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>> CC: Luigi Rizzo <rizzo@iet.unipi.it>
>> CC: Giuseppe Lettieri <g.lettieri@iet.unipi.it>
>> CC: Vincenzo Maffione <v.maffione@gmail.com>
>> CC: Jan Kiszka <jan.kiszka@siemens.com>
>> CC: Anthony Green <green@moxielogic.com>
>> CC: Stafford Horne <shorne@gmail.com>
>> CC: Guan Xuetao <gxt@mprc.pku.edu.cn>
>> CC: Max Filippov <jcmvbkbc@gmail.com>
>> CC: qemu-block@nongnu.org
>> CC: integration@gluster.org
>> CC: sheepdog@lists.wpkg.org
>> CC: qemu-arm@nongnu.org
>> CC: xen-devel@lists.xenproject.org
>> CC: qemu-ppc@nongnu.org
>> CC: qemu-s390x@nongnu.org
>> CC: qemu-riscv@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
On Wed, 20 Nov 2019 09:50:54 +0000
Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> wrote:
> Okay...
>
> I think that:
>
> 1. A lot of efforts (not only my, I think reviewing is already exceeded generation efforts)
> are made, it would be sad to lose them.
>
> 2. It's safe enough to apply only part of generated patches: we just fix error_abort/error_fatal
> in more popular subsystems, what's wrong with that? Why not to cover 80% cases by 20% efforts?
>
> 3. It's obviously impossible to merge the whole series. A lot of time passed, series diverges.
>
>
> So I propose the following plan:
>
> 1. I resend small separate series of preparation patches per maintainer. They are good anyway.
>
> 2. We commit patch with macro (changing MUST to SHOULD in documentation) and coccinelle script.
> (or that may be combined with the first series from [3.])
>
> 3. When one of preparations taken to maintainer's tree, I send generated patches for
> its maintainer.
>
>
> If no objections during a week, I'll start that plan, hope someone will support it.
>
Hi Vladimir,
I support your plan and I will help this to go forward for 9pfs, PowerPC
and XIVE. I'll start with pushing the preparatory patch for 9pfs to my
9p-next branch right away.
[RFC v5 009/126] 9pfs: well form error hint helpers
Cheers,
--
Greg
PS: my ISP's mail relay was unhappy with the huge recipient list, so I've
dropped all Cc: except qemu-devel. Sorry if some of the original
recipients receive multiple copies of my previous mail...
>
> 08.11.2019 18:30, Vladimir Sementsov-Ogievskiy wrote:
> > 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@redhat.com>
> >> CC: "Gonglei (Arei)" <arei.gonglei@huawei.com>
> >> CC: Eduardo Habkost <ehabkost@redhat.com>
> >> CC: Igor Mammedov <imammedo@redhat.com>
> >> CC: Laurent Vivier <lvivier@redhat.com>
> >> CC: Amit Shah <amit@kernel.org>
> >> CC: Kevin Wolf <kwolf@redhat.com>
> >> CC: Max Reitz <mreitz@redhat.com>
> >> CC: John Snow <jsnow@redhat.com>
> >> CC: Ari Sundholm <ari@tuxera.com>
> >> CC: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
> >> CC: Paolo Bonzini <pbonzini@redhat.com>
> >> CC: Stefan Hajnoczi <stefanha@redhat.com>
> >> CC: Fam Zheng <fam@euphon.net>
> >> CC: Stefan Weil <sw@weilnetz.de>
> >> CC: Ronnie Sahlberg <ronniesahlberg@gmail.com>
> >> CC: Peter Lieven <pl@kamp.de>
> >> CC: Eric Blake <eblake@redhat.com>
> >> CC: "Denis V. Lunev" <den@openvz.org>
> >> CC: Markus Armbruster <armbru@redhat.com>
> >> CC: Alberto Garcia <berto@igalia.com>
> >> CC: Jason Dillaman <dillaman@redhat.com>
> >> CC: Wen Congyang <wencongyang2@huawei.com>
> >> CC: Xie Changlong <xiechanglong.d@gmail.com>
> >> CC: Liu Yuan <namei.unix@gmail.com>
> >> CC: "Richard W.M. Jones" <rjones@redhat.com>
> >> CC: Jeff Cody <codyprime@gmail.com>
> >> CC: "Marc-André Lureau" <marcandre.lureau@redhat.com>
> >> CC: "Daniel P. Berrangé" <berrange@redhat.com>
> >> CC: Richard Henderson <rth@twiddle.net>
> >> CC: Greg Kurz <groug@kaod.org>
> >> CC: "Michael S. Tsirkin" <mst@redhat.com>
> >> CC: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
> >> CC: Beniamino Galvani <b.galvani@gmail.com>
> >> CC: Peter Maydell <peter.maydell@linaro.org>
> >> CC: "Cédric Le Goater" <clg@kaod.org>
> >> CC: Andrew Jeffery <andrew@aj.id.au>
> >> CC: Joel Stanley <joel@jms.id.au>
> >> CC: Andrew Baumann <Andrew.Baumann@microsoft.com>
> >> CC: "Philippe Mathieu-Daudé" <philmd@redhat.com>
> >> CC: Antony Pavlov <antonynpavlov@gmail.com>
> >> CC: Jean-Christophe Dubois <jcd@tribudubois.net>
> >> CC: Peter Chubb <peter.chubb@nicta.com.au>
> >> CC: Subbaraya Sundeep <sundeep.lkml@gmail.com>
> >> CC: Eric Auger <eric.auger@redhat.com>
> >> CC: Alistair Francis <alistair@alistair23.me>
> >> CC: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
> >> CC: Stefano Stabellini <sstabellini@kernel.org>
> >> CC: Anthony Perard <anthony.perard@citrix.com>
> >> CC: Paul Durrant <paul@xen.org>
> >> CC: Paul Burton <pburton@wavecomp.com>
> >> CC: Aleksandar Rikalo <arikalo@wavecomp.com>
> >> CC: Chris Wulff <crwulff@gmail.com>
> >> CC: Marek Vasut <marex@denx.de>
> >> CC: David Gibson <david@gibson.dropbear.id.au>
> >> CC: Cornelia Huck <cohuck@redhat.com>
> >> CC: Halil Pasic <pasic@linux.ibm.com>
> >> CC: Christian Borntraeger <borntraeger@de.ibm.com>
> >> CC: "Hervé Poussineau" <hpoussin@reactos.org>
> >> CC: Xiao Guangrong <xiaoguangrong.eric@gmail.com>
> >> CC: Aurelien Jarno <aurelien@aurel32.net>
> >> CC: Aleksandar Markovic <amarkovic@wavecomp.com>
> >> CC: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> >> CC: Jason Wang <jasowang@redhat.com>
> >> CC: Laszlo Ersek <lersek@redhat.com>
> >> CC: Yuval Shaia <yuval.shaia@oracle.com>
> >> CC: Palmer Dabbelt <palmer@sifive.com>
> >> CC: Sagar Karandikar <sagark@eecs.berkeley.edu>
> >> CC: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
> >> CC: David Hildenbrand <david@redhat.com>
> >> CC: Thomas Huth <thuth@redhat.com>
> >> CC: Eric Farman <farman@linux.ibm.com>
> >> CC: Matthew Rosato <mjrosato@linux.ibm.com>
> >> CC: Hannes Reinecke <hare@suse.com>
> >> CC: Michael Walle <michael@walle.cc>
> >> CC: Artyom Tarasenko <atar4qemu@gmail.com>
> >> CC: Stefan Berger <stefanb@linux.ibm.com>
> >> CC: Samuel Thibault <samuel.thibault@ens-lyon.org>
> >> CC: Alex Williamson <alex.williamson@redhat.com>
> >> CC: Tony Krowiak <akrowiak@linux.ibm.com>
> >> CC: Pierre Morel <pmorel@linux.ibm.com>
> >> CC: Michael Roth <mdroth@linux.vnet.ibm.com>
> >> CC: Hailiang Zhang <zhang.zhanghailiang@huawei.com>
> >> CC: Juan Quintela <quintela@redhat.com>
> >> CC: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >> CC: Luigi Rizzo <rizzo@iet.unipi.it>
> >> CC: Giuseppe Lettieri <g.lettieri@iet.unipi.it>
> >> CC: Vincenzo Maffione <v.maffione@gmail.com>
> >> CC: Jan Kiszka <jan.kiszka@siemens.com>
> >> CC: Anthony Green <green@moxielogic.com>
> >> CC: Stafford Horne <shorne@gmail.com>
> >> CC: Guan Xuetao <gxt@mprc.pku.edu.cn>
> >> CC: Max Filippov <jcmvbkbc@gmail.com>
> >> CC: qemu-block@nongnu.org
> >> CC: integration@gluster.org
> >> CC: sheepdog@lists.wpkg.org
> >> CC: qemu-arm@nongnu.org
> >> CC: xen-devel@lists.xenproject.org
> >> CC: qemu-ppc@nongnu.org
> >> CC: qemu-s390x@nongnu.org
> >> CC: qemu-riscv@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
> >>
> >
> >
>
>
20.11.2019 14:34, Greg Kurz wrote: > On Wed, 20 Nov 2019 09:50:54 +0000 > Vladimir Sementsov-Ogievskiy<vsementsov@virtuozzo.com> wrote: > >> Okay... >> >> I think that: >> >> 1. A lot of efforts (not only my, I think reviewing is already exceeded generation efforts) >> are made, it would be sad to lose them. >> >> 2. It's safe enough to apply only part of generated patches: we just fix error_abort/error_fatal >> in more popular subsystems, what's wrong with that? Why not to cover 80% cases by 20% efforts? >> >> 3. It's obviously impossible to merge the whole series. A lot of time passed, series diverges. >> >> >> So I propose the following plan: >> >> 1. I resend small separate series of preparation patches per maintainer. They are good anyway. >> >> 2. We commit patch with macro (changing MUST to SHOULD in documentation) and coccinelle script. >> (or that may be combined with the first series from [3.]) >> >> 3. When one of preparations taken to maintainer's tree, I send generated patches for >> its maintainer. >> >> >> If no objections during a week, I'll start that plan, hope someone will support it. >> > Hi Vladimir, > > I support your plan and I will help this to go forward for 9pfs, PowerPC > and XIVE. I'll start with pushing the preparatory patch for 9pfs to my > 9p-next branch right away. > > [RFC v5 009/126] 9pfs: well form error hint helpers > > Cheers, Thank you Greg! -- Best regards, Vladimir
On 11/20/19 3:50 AM, Vladimir Sementsov-Ogievskiy wrote: > Okay... > > I think that: > > 1. A lot of efforts (not only my, I think reviewing is already exceeded generation efforts) > are made, it would be sad to lose them. > > 2. It's safe enough to apply only part of generated patches: we just fix error_abort/error_fatal > in more popular subsystems, what's wrong with that? Why not to cover 80% cases by 20% efforts? > > 3. It's obviously impossible to merge the whole series. A lot of time passed, series diverges. > > > So I propose the following plan: > > 1. I resend small separate series of preparation patches per maintainer. They are good anyway. > > 2. We commit patch with macro (changing MUST to SHOULD in documentation) and coccinelle script. > (or that may be combined with the first series from [3.]) > > 3. When one of preparations taken to maintainer's tree, I send generated patches for > its maintainer. I'd still prefer waiting for direction from Markus. We've been tied up by other things (KVM Forum, 4.2 release), but now that we are in freeze, this is actually a GOOD time for Markus to finally get back to this series, and there is going to be less rebasing needed if we can apply the entire cleanup right as 5.0 development opens in a couple of weeks. > > > If no objections during a week, I'll start that plan, hope someone will support it. > > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
Am 20.11.2019 um 13:59 hat Eric Blake geschrieben: > On 11/20/19 3:50 AM, Vladimir Sementsov-Ogievskiy wrote: > > Okay... > > > > I think that: > > > > 1. A lot of efforts (not only my, I think reviewing is already exceeded generation efforts) > > are made, it would be sad to lose them. > > > > 2. It's safe enough to apply only part of generated patches: we just fix error_abort/error_fatal > > in more popular subsystems, what's wrong with that? Why not to cover 80% cases by 20% efforts? > > > > 3. It's obviously impossible to merge the whole series. A lot of time passed, series diverges. > > > > > > So I propose the following plan: > > > > 1. I resend small separate series of preparation patches per maintainer. They are good anyway. > > > > 2. We commit patch with macro (changing MUST to SHOULD in documentation) and coccinelle script. > > (or that may be combined with the first series from [3.]) > > > > 3. When one of preparations taken to maintainer's tree, I send generated patches for > > its maintainer. > > I'd still prefer waiting for direction from Markus. We've been tied up by > other things (KVM Forum, 4.2 release), but now that we are in freeze, this > is actually a GOOD time for Markus to finally get back to this series, and > there is going to be less rebasing needed if we can apply the entire cleanup > right as 5.0 development opens in a couple of weeks. Actually, that's possibly the worst possible time for avoiding conflicts because during freeze, maintainers are collecting stuff in private branches for weeks without getting it into master. If you are the one who gets merged first (what are the odds?), that solves the problem for you, but then everyone else will get conflicts. I like Vladimir's new plan. Kevin
Patchew URL: https://patchew.org/QEMU/20191011160552.22907-1-vsementsov@virtuozzo.com/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Subject: [RFC v5 000/126] error: auto propagated local_err
Type: series
Message-id: 20191011160552.22907-1-vsementsov@virtuozzo.com
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
Switched to a new branch 'test'
319b206 util/qemu-config.c: introduce ERRP_AUTO_PROPAGATE
3ee6567 tests/test-image-locking.c: introduce ERRP_AUTO_PROPAGATE
2e4f371 target/tilegx/cpu.c: introduce ERRP_AUTO_PROPAGATE
5f766d7 memory_mapping.c: introduce ERRP_AUTO_PROPAGATE
8969c6f iothread.c: introduce ERRP_AUTO_PROPAGATE
1534a92 hw/sd/ssi-sd.c: introduce ERRP_AUTO_PROPAGATE
b5b1e0a hw/cpu/core.c: introduce ERRP_AUTO_PROPAGATE
dd3f310 hw/core/bus.c: introduce ERRP_AUTO_PROPAGATE
21ee5f8 PVRDMA: introduce ERRP_AUTO_PROPAGATE
84365ab Replication: introduce ERRP_AUTO_PROPAGATE
225bbc5 vvfat: introduce ERRP_AUTO_PROPAGATE
2da58d6 vpc: introduce ERRP_AUTO_PROPAGATE
e7fb0b9 blkdebug: introduce ERRP_AUTO_PROPAGATE
39d367e qcow: introduce ERRP_AUTO_PROPAGATE
1b7546c qcow2: introduce ERRP_AUTO_PROPAGATE
c0352a1 raw: introduce ERRP_AUTO_PROPAGATE
612aebf qed: introduce ERRP_AUTO_PROPAGATE
155f6ea parallels: introduce ERRP_AUTO_PROPAGATE
5d3c3fd blkverify: introduce ERRP_AUTO_PROPAGATE
36132e6 blklogwrites: introduce ERRP_AUTO_PROPAGATE
785cfb4 Quorum: introduce ERRP_AUTO_PROPAGATE
5acba63 Bootdevice: introduce ERRP_AUTO_PROPAGATE
0e0d3fb NVMe Block Driver: introduce ERRP_AUTO_PROPAGATE
1cf6911 GLUSTER: introduce ERRP_AUTO_PROPAGATE
cb4c8f7 CURL: introduce ERRP_AUTO_PROPAGATE
4e32493 SSH: introduce ERRP_AUTO_PROPAGATE
abbecd4 NFS: introduce ERRP_AUTO_PROPAGATE
f4f937d nbd: introduce ERRP_AUTO_PROPAGATE
7b638b3 iSCSI: introduce ERRP_AUTO_PROPAGATE
4727ffc VDI: introduce ERRP_AUTO_PROPAGATE
2c03145 VHDX: introduce ERRP_AUTO_PROPAGATE
7916a87 Sheepdog: introduce ERRP_AUTO_PROPAGATE
db15fdd RBD: introduce ERRP_AUTO_PROPAGATE
05ea2cf VMDK: introduce ERRP_AUTO_PROPAGATE
ff11144 Record/replay: introduce ERRP_AUTO_PROPAGATE
a95fab2 colo: introduce ERRP_AUTO_PROPAGATE
be71202 Sockets: introduce ERRP_AUTO_PROPAGATE
69a59b0 I/O Channels: introduce ERRP_AUTO_PROPAGATE
e4f56f3 Cryptography: introduce ERRP_AUTO_PROPAGATE
4f5f412 Migration: introduce ERRP_AUTO_PROPAGATE
985da1a TPM: introduce ERRP_AUTO_PROPAGATE
b19cdab Tracing: introduce ERRP_AUTO_PROPAGATE
3113fc7 SLIRP: introduce ERRP_AUTO_PROPAGATE
51e2f48 QMP: introduce ERRP_AUTO_PROPAGATE
1c0c827 QOM: introduce ERRP_AUTO_PROPAGATE
fc0eec4 qga: introduce ERRP_AUTO_PROPAGATE
af16041 QAPI: introduce ERRP_AUTO_PROPAGATE
21ed21e cryptodev: introduce ERRP_AUTO_PROPAGATE
7ab6e12 hostmem: introduce ERRP_AUTO_PROPAGATE
994c02c net: introduce ERRP_AUTO_PROPAGATE
26fe9a4 Human Monitor (HMP): introduce ERRP_AUTO_PROPAGATE
82b7f8b Main loop: introduce ERRP_AUTO_PROPAGATE
863100d Graphics: introduce ERRP_AUTO_PROPAGATE
45a8d41 SPICE: introduce ERRP_AUTO_PROPAGATE
6d967ec Memory API: introduce ERRP_AUTO_PROPAGATE
5645325 Dump: introduce ERRP_AUTO_PROPAGATE
6d795b4 cmdline: introduce ERRP_AUTO_PROPAGATE
5fceaa3 chardev: introduce ERRP_AUTO_PROPAGATE
d551bda scsi: introduce ERRP_AUTO_PROPAGATE
cc3d83e block: introduce ERRP_AUTO_PROPAGATE
75b948b Audio: introduce ERRP_AUTO_PROPAGATE
c3fee2f XIVE: introduce ERRP_AUTO_PROPAGATE
42ba3e1 fw_cfg: introduce ERRP_AUTO_PROPAGATE
90c4efa virtio-gpu: introduce ERRP_AUTO_PROPAGATE
4db3f47 eepro100: introduce ERRP_AUTO_PROPAGATE
d7634f4 NVDIMM: introduce ERRP_AUTO_PROPAGATE
706ee21 megasas: introduce ERRP_AUTO_PROPAGATE
a037a5c virtio-rng: introduce ERRP_AUTO_PROPAGATE
dcf1769 virtio-serial: introduce ERRP_AUTO_PROPAGATE
77d26d1 virtio-input: introduce ERRP_AUTO_PROPAGATE
7f62cb1 virtio-ccw: introduce ERRP_AUTO_PROPAGATE
2bdd860 virtio-blk: introduce ERRP_AUTO_PROPAGATE
026260e virtio-9p: introduce ERRP_AUTO_PROPAGATE
191c845 virtio: introduce ERRP_AUTO_PROPAGATE
24510de vhost: introduce ERRP_AUTO_PROPAGATE
e8a1779 vfio-ccw: introduce ERRP_AUTO_PROPAGATE
00baaa3 VFIO: introduce ERRP_AUTO_PROPAGATE
361c201 USB (serial adapter): introduce ERRP_AUTO_PROPAGATE
0f70e97 USB: introduce ERRP_AUTO_PROPAGATE
9548378 SD (Secure Card): introduce ERRP_AUTO_PROPAGATE
90b472d SCSI: introduce ERRP_AUTO_PROPAGATE
312220a pflash: introduce ERRP_AUTO_PROPAGATE
47a7bb5 Network devices: introduce ERRP_AUTO_PROPAGATE
bf2e1ef ACPI/SMBIOS: introduce ERRP_AUTO_PROPAGATE
98f6d04 PCI: introduce ERRP_AUTO_PROPAGATE
e3e14fe IPack: introduce ERRP_AUTO_PROPAGATE
9ef097c Floppy: introduce ERRP_AUTO_PROPAGATE
4ffbc39 IDE: introduce ERRP_AUTO_PROPAGATE
a91553f X86 Machines: introduce ERRP_AUTO_PROPAGATE
a83188d S390 Machines: introduce ERRP_AUTO_PROPAGATE
8cbe8c9 SPARC Machines: introduce ERRP_AUTO_PROPAGATE
a36009a PowerPC Machines: introduce ERRP_AUTO_PROPAGATE
f82c520 MIPS Machines: introduce ERRP_AUTO_PROPAGATE
7033c7f ARM Machines: introduce ERRP_AUTO_PROPAGATE
13406bd Hosts: introduce ERRP_AUTO_PROPAGATE
6923a91 xen: introduce ERRP_AUTO_PROPAGATE
0170e9e kvm: introduce ERRP_AUTO_PROPAGATE
7c4b0d9 tcg: introduce ERRP_AUTO_PROPAGATE
5cb4ba6 s390x: introduce ERRP_AUTO_PROPAGATE
53edd88 misc: introduce ERRP_AUTO_PROPAGATE
a296770 python: add commit-per-subsystem.py
feedc38 scripts: add coccinelle script to use auto propagated errp
e712d0e error: auto propagated local_err
64b786f hw/vfio/ap: drop local_err from vfio_ap_realize
54ef2b0 backends/cryptodev: drop local_err from cryptodev_backend_complete()
c605b8b qapi/error: add (Error **errp) cleaning APIs
be9f380 include/qom/object.h: rename Error ** parameter to more common errp
948a5a3 include/block/snapshot.h: rename Error ** parameter to more common errp
cda337b hw/usb: rename Error ** parameter to more common errp
1d22fd7 hw/tpm: rename Error ** parameter to more common errp
4023b59 hw/sd: rename Error ** parameter to more common errp
c258678 hw/s390x: rename Error ** parameter to more common errp
07539ce monitor/qmp-cmds: rename Error ** parameter to more common errp
a26c917 qga: rename Error ** parameter to more common errp
05cef6b hw/i386/amd_iommu: rename Error ** parameter to more common errp
398c2e9 block/snapshot: rename Error ** parameter to more common errp
4df0735 hw/core/qdev: cleanup Error ** variables
a97739a 9pfs: well form error hint helpers
f621e2a ppc: well form kvmppc_hint_smt_possible error hint helper
cc9b38a nbd: well form nbd_iter_channel_error errp handler
9f18f68 qdev-monitor: well form error hint helpers
6c96ebe vnc: drop Error pointer indirection in vnc_client_io_error
8dac505 hmp: drop Error pointer indirection in hmp_handle_error
ea1f06c error: rename errp to errp_in where it is IN-argument
eb0e528 net/net: Clean up variable shadowing in net_client_init()
16c9d22 hw/core/loader-fit: fix freeing errp in fit_load_fdt
=== OUTPUT BEGIN ===
1/126 Checking commit 16c9d22dbdf8 (hw/core/loader-fit: fix freeing errp in fit_load_fdt)
2/126 Checking commit eb0e5289fbd9 (net/net: Clean up variable shadowing in net_client_init())
3/126 Checking commit ea1f06c5177f (error: rename errp to errp_in where it is IN-argument)
4/126 Checking commit 8dac50575fb7 (hmp: drop Error pointer indirection in hmp_handle_error)
5/126 Checking commit 6c96ebe7980d (vnc: drop Error pointer indirection in vnc_client_io_error)
6/126 Checking commit 9f18f68053d6 (qdev-monitor: well form error hint helpers)
7/126 Checking commit cc9b38ae2be7 (nbd: well form nbd_iter_channel_error errp handler)
8/126 Checking commit f621e2a212e4 (ppc: well form kvmppc_hint_smt_possible error hint helper)
9/126 Checking commit a97739a33dbf (9pfs: well form error hint helpers)
10/126 Checking commit 4df0735d30e8 (hw/core/qdev: cleanup Error ** variables)
11/126 Checking commit 398c2e9b6b6d (block/snapshot: rename Error ** parameter to more common errp)
12/126 Checking commit 05cef6ba60f4 (hw/i386/amd_iommu: rename Error ** parameter to more common errp)
13/126 Checking commit a26c9171c17b (qga: rename Error ** parameter to more common errp)
14/126 Checking commit 07539ce2d362 (monitor/qmp-cmds: rename Error ** parameter to more common errp)
15/126 Checking commit c258678c3b76 (hw/s390x: rename Error ** parameter to more common errp)
16/126 Checking commit 4023b59092f7 (hw/sd: rename Error ** parameter to more common errp)
17/126 Checking commit 1d22fd7fc323 (hw/tpm: rename Error ** parameter to more common errp)
18/126 Checking commit cda337b28d54 (hw/usb: rename Error ** parameter to more common errp)
19/126 Checking commit 948a5a31d4b1 (include/block/snapshot.h: rename Error ** parameter to more common errp)
20/126 Checking commit be9f38026447 (include/qom/object.h: rename Error ** parameter to more common errp)
21/126 Checking commit c605b8ba94ea (qapi/error: add (Error **errp) cleaning APIs)
22/126 Checking commit 54ef2b0ab6ea (backends/cryptodev: drop local_err from cryptodev_backend_complete())
23/126 Checking commit 64b786fd77cb (hw/vfio/ap: drop local_err from vfio_ap_realize)
24/126 Checking commit e712d0e3ad3b (error: auto propagated local_err)
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#79: FILE: include/qapi/error.h:381:
+#define ERRP_AUTO_PROPAGATE() \
+ g_auto(ErrorPropagator) _auto_errp_prop = {.errp = errp}; \
+ errp = ((errp == NULL || *errp == error_fatal) \
+ ? &_auto_errp_prop.local_err : errp)
total: 1 errors, 0 warnings, 44 lines checked
Patch 24/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
25/126 Checking commit feedc38f888e (scripts: add coccinelle script to use auto propagated errp)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#11:
new file mode 100644
total: 0 errors, 1 warnings, 118 lines checked
Patch 25/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
26/126 Checking commit a296770e4ed0 (python: add commit-per-subsystem.py)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#13:
new file mode 100755
ERROR: line over 90 characters
#51: FILE: python/commit-per-subsystem.py:34:
+ ret = subprocess.check_output(['git', 'diff', '--name-only'], encoding='utf-8').split('\n')
WARNING: line over 80 characters
#102: FILE: python/commit-per-subsystem.py:85:
+ path, mapper[path][0], subsystem, mapper_name, glob_count,
ERROR: line over 90 characters
#142: FILE: python/commit-per-subsystem.py:125:
+ print('Warning: nothing corresponds to "{}"'.format(fname))
ERROR: line over 90 characters
#148: FILE: python/commit-per-subsystem.py:131:
+ self.add(subsystem, f, self.map_glob_file, 'glob-file', n)
ERROR: line over 90 characters
#151: FILE: python/commit-per-subsystem.py:134:
+ self.add(subsystem, f, self.map_glob_dir, 'glob-dir', n)
total: 4 errors, 2 warnings, 204 lines checked
Patch 26/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
27/126 Checking commit 53edd882e0a2 (misc: introduce ERRP_AUTO_PROPAGATE)
28/126 Checking commit 5cb4ba6dc988 (s390x: introduce ERRP_AUTO_PROPAGATE)
29/126 Checking commit 7c4b0d9d6196 (tcg: introduce ERRP_AUTO_PROPAGATE)
ERROR: suspect code indent for conditional statements (4, 4)
#1360: FILE: target/i386/cpu.c:5405:
+ if (*errp) {
}
total: 1 errors, 0 warnings, 1656 lines checked
Patch 29/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
30/126 Checking commit 0170e9e55113 (kvm: introduce ERRP_AUTO_PROPAGATE)
31/126 Checking commit 6923a91b51e4 (xen: introduce ERRP_AUTO_PROPAGATE)
32/126 Checking commit 13406bd38518 (Hosts: introduce ERRP_AUTO_PROPAGATE)
33/126 Checking commit 7033c7f6dbb2 (ARM Machines: introduce ERRP_AUTO_PROPAGATE)
34/126 Checking commit f82c520e220f (MIPS Machines: introduce ERRP_AUTO_PROPAGATE)
35/126 Checking commit a36009a9841f (PowerPC Machines: introduce ERRP_AUTO_PROPAGATE)
ERROR: suspect code indent for conditional statements (8, 8)
#2325: FILE: hw/ppc/spapr_pci.c:1615:
+ if (*errp) {
}
total: 1 errors, 0 warnings, 2188 lines checked
Patch 35/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
36/126 Checking commit 8cbe8c93d975 (SPARC Machines: introduce ERRP_AUTO_PROPAGATE)
37/126 Checking commit a83188dacb99 (S390 Machines: introduce ERRP_AUTO_PROPAGATE)
38/126 Checking commit a91553fe4d04 (X86 Machines: introduce ERRP_AUTO_PROPAGATE)
39/126 Checking commit 4ffbc39501c4 (IDE: introduce ERRP_AUTO_PROPAGATE)
40/126 Checking commit 9ef097c08fd8 (Floppy: introduce ERRP_AUTO_PROPAGATE)
41/126 Checking commit e3e14fe9d883 (IPack: introduce ERRP_AUTO_PROPAGATE)
42/126 Checking commit 98f6d04bd17f (PCI: introduce ERRP_AUTO_PROPAGATE)
43/126 Checking commit bf2e1efbbb02 (ACPI/SMBIOS: introduce ERRP_AUTO_PROPAGATE)
44/126 Checking commit 47a7bb584c29 (Network devices: introduce ERRP_AUTO_PROPAGATE)
45/126 Checking commit 312220a1ddc8 (pflash: introduce ERRP_AUTO_PROPAGATE)
46/126 Checking commit 90b472de5a1d (SCSI: introduce ERRP_AUTO_PROPAGATE)
47/126 Checking commit 954837843356 (SD (Secure Card): introduce ERRP_AUTO_PROPAGATE)
48/126 Checking commit 0f70e97614d7 (USB: introduce ERRP_AUTO_PROPAGATE)
49/126 Checking commit 361c2015322c (USB (serial adapter): introduce ERRP_AUTO_PROPAGATE)
50/126 Checking commit 00baaa39204f (VFIO: introduce ERRP_AUTO_PROPAGATE)
51/126 Checking commit e8a177945afc (vfio-ccw: introduce ERRP_AUTO_PROPAGATE)
52/126 Checking commit 24510de2e8fc (vhost: introduce ERRP_AUTO_PROPAGATE)
53/126 Checking commit 191c845b48f3 (virtio: introduce ERRP_AUTO_PROPAGATE)
54/126 Checking commit 026260ea0442 (virtio-9p: introduce ERRP_AUTO_PROPAGATE)
55/126 Checking commit 2bdd8607add4 (virtio-blk: introduce ERRP_AUTO_PROPAGATE)
56/126 Checking commit 7f62cb15ac25 (virtio-ccw: introduce ERRP_AUTO_PROPAGATE)
57/126 Checking commit 77d26d1cfd2e (virtio-input: introduce ERRP_AUTO_PROPAGATE)
58/126 Checking commit dcf176995f8c (virtio-serial: introduce ERRP_AUTO_PROPAGATE)
59/126 Checking commit a037a5c408d5 (virtio-rng: introduce ERRP_AUTO_PROPAGATE)
60/126 Checking commit 706ee2136358 (megasas: introduce ERRP_AUTO_PROPAGATE)
61/126 Checking commit d7634f485cf3 (NVDIMM: introduce ERRP_AUTO_PROPAGATE)
62/126 Checking commit 4db3f478d427 (eepro100: introduce ERRP_AUTO_PROPAGATE)
63/126 Checking commit 90c4efaa36e0 (virtio-gpu: introduce ERRP_AUTO_PROPAGATE)
64/126 Checking commit 42ba3e1dd85c (fw_cfg: introduce ERRP_AUTO_PROPAGATE)
65/126 Checking commit c3fee2fc02f1 (XIVE: introduce ERRP_AUTO_PROPAGATE)
66/126 Checking commit 75b948b28b28 (Audio: introduce ERRP_AUTO_PROPAGATE)
67/126 Checking commit cc3d83e31b4e (block: introduce ERRP_AUTO_PROPAGATE)
ERROR: suspect code indent for conditional statements (8, 8)
#126: FILE: block.c:1298:
+ if (*errp) {
} else if (bs->filename[0]) {
ERROR: suspect code indent for conditional statements (12, 12)
#556: FILE: block.c:3784:
+ if (*errp) {
} else {
ERROR: Error messages should not contain newlines
#735: FILE: block.c:5791:
+ "This may become an error in future versions.\n");
total: 3 errors, 0 warnings, 2006 lines checked
Patch 67/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
68/126 Checking commit d551bdac29ec (scsi: introduce ERRP_AUTO_PROPAGATE)
69/126 Checking commit 5fceaa34a239 (chardev: introduce ERRP_AUTO_PROPAGATE)
70/126 Checking commit 6d795b43413c (cmdline: introduce ERRP_AUTO_PROPAGATE)
71/126 Checking commit 56453257b1ac (Dump: introduce ERRP_AUTO_PROPAGATE)
72/126 Checking commit 6d967ec1fdf9 (Memory API: introduce ERRP_AUTO_PROPAGATE)
73/126 Checking commit 45a8d41d3e5f (SPICE: introduce ERRP_AUTO_PROPAGATE)
74/126 Checking commit 863100d31565 (Graphics: introduce ERRP_AUTO_PROPAGATE)
75/126 Checking commit 82b7f8bf101d (Main loop: introduce ERRP_AUTO_PROPAGATE)
76/126 Checking commit 26fe9a48828c (Human Monitor (HMP): introduce ERRP_AUTO_PROPAGATE)
77/126 Checking commit 994c02c4e44c (net: introduce ERRP_AUTO_PROPAGATE)
78/126 Checking commit 7ab6e12b144c (hostmem: introduce ERRP_AUTO_PROPAGATE)
79/126 Checking commit 21ed21e21d02 (cryptodev: introduce ERRP_AUTO_PROPAGATE)
80/126 Checking commit af1604131cde (QAPI: introduce ERRP_AUTO_PROPAGATE)
ERROR: suspect code indent for conditional statements (4, 4)
#131: FILE: qapi/qapi-visit-core.c:156:
+ if (*errp) {
} else if (value > max) {
ERROR: suspect code indent for conditional statements (4, 4)
#147: FILE: qapi/qapi-visit-core.c:214:
+ if (*errp) {
} else if (value < min || value > max) {
ERROR: suspect code indent for conditional statements (4, 4)
#232: FILE: qapi/qmp-dispatch.c:133:
+ if (*errp) {
} else if (cmd->options & QCO_NO_SUCCESS_RESP) {
total: 3 errors, 0 warnings, 182 lines checked
Patch 80/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
81/126 Checking commit fc0eec4158dc (qga: introduce ERRP_AUTO_PROPAGATE)
ERROR: suspect code indent for conditional statements (4, 4)
#378: FILE: qga/commands-posix.c:1587:
+ if (*errp) {
} else {
ERROR: suspect code indent for conditional statements (4, 4)
#407: FILE: qga/commands-posix.c:1613:
+ if (*errp) {
} else {
ERROR: suspect code indent for conditional statements (4, 4)
#438: FILE: qga/commands-posix.c:1643:
+ if (*errp) {
} else {
total: 3 errors, 0 warnings, 669 lines checked
Patch 81/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
82/126 Checking commit 1c0c827d5ca3 (QOM: introduce ERRP_AUTO_PROPAGATE)
ERROR: suspect code indent for conditional statements (8, 8)
#277: FILE: hw/core/qdev-properties.c:671:
+ if (*errp) {
} else if (value < -1 || value > 255) {
total: 1 errors, 0 warnings, 1298 lines checked
Patch 82/126 has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
83/126 Checking commit 51e2f4872c1a (QMP: introduce ERRP_AUTO_PROPAGATE)
84/126 Checking commit 3113fc7bf720 (SLIRP: introduce ERRP_AUTO_PROPAGATE)
85/126 Checking commit b19cdab11e6c (Tracing: introduce ERRP_AUTO_PROPAGATE)
86/126 Checking commit 985da1a54aa6 (TPM: introduce ERRP_AUTO_PROPAGATE)
87/126 Checking commit 4f5f412b75c4 (Migration: introduce ERRP_AUTO_PROPAGATE)
88/126 Checking commit e4f56f3b8dae (Cryptography: introduce ERRP_AUTO_PROPAGATE)
89/126 Checking commit 69a59b07492d (I/O Channels: introduce ERRP_AUTO_PROPAGATE)
90/126 Checking commit be712020a7c1 (Sockets: introduce ERRP_AUTO_PROPAGATE)
91/126 Checking commit a95fab2ba9c0 (colo: introduce ERRP_AUTO_PROPAGATE)
92/126 Checking commit ff11144b4d5e (Record/replay: introduce ERRP_AUTO_PROPAGATE)
93/126 Checking commit 05ea2cfe6a49 (VMDK: introduce ERRP_AUTO_PROPAGATE)
94/126 Checking commit db15fdd137ca (RBD: introduce ERRP_AUTO_PROPAGATE)
95/126 Checking commit 7916a87501ff (Sheepdog: introduce ERRP_AUTO_PROPAGATE)
96/126 Checking commit 2c03145f174d (VHDX: introduce ERRP_AUTO_PROPAGATE)
97/126 Checking commit 4727ffc9e2b1 (VDI: introduce ERRP_AUTO_PROPAGATE)
98/126 Checking commit 7b638b375230 (iSCSI: introduce ERRP_AUTO_PROPAGATE)
99/126 Checking commit f4f937dedc90 (nbd: introduce ERRP_AUTO_PROPAGATE)
100/126 Checking commit abbecd4c8ca1 (NFS: introduce ERRP_AUTO_PROPAGATE)
101/126 Checking commit 4e324932309d (SSH: introduce ERRP_AUTO_PROPAGATE)
102/126 Checking commit cb4c8f74b637 (CURL: introduce ERRP_AUTO_PROPAGATE)
103/126 Checking commit 1cf6911a3113 (GLUSTER: introduce ERRP_AUTO_PROPAGATE)
104/126 Checking commit 0e0d3fbc80a8 (NVMe Block Driver: introduce ERRP_AUTO_PROPAGATE)
105/126 Checking commit 5acba634d3f2 (Bootdevice: introduce ERRP_AUTO_PROPAGATE)
106/126 Checking commit 785cfb4bfd6e (Quorum: introduce ERRP_AUTO_PROPAGATE)
107/126 Checking commit 36132e6d953e (blklogwrites: introduce ERRP_AUTO_PROPAGATE)
108/126 Checking commit 5d3c3fde30a1 (blkverify: introduce ERRP_AUTO_PROPAGATE)
109/126 Checking commit 155f6ea5fe1b (parallels: introduce ERRP_AUTO_PROPAGATE)
110/126 Checking commit 612aebf400b0 (qed: introduce ERRP_AUTO_PROPAGATE)
111/126 Checking commit c0352a192b8f (raw: introduce ERRP_AUTO_PROPAGATE)
112/126 Checking commit 1b7546c66586 (qcow2: introduce ERRP_AUTO_PROPAGATE)
113/126 Checking commit 39d367e15ae7 (qcow: introduce ERRP_AUTO_PROPAGATE)
114/126 Checking commit e7fb0b9d3ec5 (blkdebug: introduce ERRP_AUTO_PROPAGATE)
115/126 Checking commit 2da58d6731e0 (vpc: introduce ERRP_AUTO_PROPAGATE)
116/126 Checking commit 225bbc51c347 (vvfat: introduce ERRP_AUTO_PROPAGATE)
117/126 Checking commit 84365ab2dc2d (Replication: introduce ERRP_AUTO_PROPAGATE)
118/126 Checking commit 21ee5f83d833 (PVRDMA: introduce ERRP_AUTO_PROPAGATE)
119/126 Checking commit dd3f3104f838 (hw/core/bus.c: introduce ERRP_AUTO_PROPAGATE)
120/126 Checking commit b5b1e0a54e36 (hw/cpu/core.c: introduce ERRP_AUTO_PROPAGATE)
121/126 Checking commit 1534a928d277 (hw/sd/ssi-sd.c: introduce ERRP_AUTO_PROPAGATE)
122/126 Checking commit 8969c6fe5523 (iothread.c: introduce ERRP_AUTO_PROPAGATE)
123/126 Checking commit 5f766d764fb0 (memory_mapping.c: introduce ERRP_AUTO_PROPAGATE)
124/126 Checking commit 2e4f3717dda3 (target/tilegx/cpu.c: introduce ERRP_AUTO_PROPAGATE)
125/126 Checking commit 3ee65677767a (tests/test-image-locking.c: introduce ERRP_AUTO_PROPAGATE)
126/126 Checking commit 319b2061bfba (util/qemu-config.c: introduce ERRP_AUTO_PROPAGATE)
=== OUTPUT END ===
Test command exited with code: 1
The full log is available at
http://patchew.org/logs/20191011160552.22907-1-vsementsov@virtuozzo.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
12.10.2019 5:52, no-reply@patchew.org wrote:
> Patchew URL: https://patchew.org/QEMU/20191011160552.22907-1-vsementsov@virtuozzo.com/
>
>
>
> Hi,
>
> This series seems to have some coding style problems. See output below for
> more information:
>
> Subject: [RFC v5 000/126] error: auto propagated local_err
> Type: series
> Message-id: 20191011160552.22907-1-vsementsov@virtuozzo.com
>
> === TEST SCRIPT BEGIN ===
> #!/bin/bash
> git rev-parse base > /dev/null || exit 0
> git config --local diff.renamelimit 0
> git config --local diff.renames True
> git config --local diff.algorithm histogram
> ./scripts/checkpatch.pl --mailback base..
> === TEST SCRIPT END ===
>
> Switched to a new branch 'test'
> 319b206 util/qemu-config.c: introduce ERRP_AUTO_PROPAGATE
> 3ee6567 tests/test-image-locking.c: introduce ERRP_AUTO_PROPAGATE
> 2e4f371 target/tilegx/cpu.c: introduce ERRP_AUTO_PROPAGATE
> 5f766d7 memory_mapping.c: introduce ERRP_AUTO_PROPAGATE
> 8969c6f iothread.c: introduce ERRP_AUTO_PROPAGATE
> 1534a92 hw/sd/ssi-sd.c: introduce ERRP_AUTO_PROPAGATE
> b5b1e0a hw/cpu/core.c: introduce ERRP_AUTO_PROPAGATE
> dd3f310 hw/core/bus.c: introduce ERRP_AUTO_PROPAGATE
> 21ee5f8 PVRDMA: introduce ERRP_AUTO_PROPAGATE
> 84365ab Replication: introduce ERRP_AUTO_PROPAGATE
> 225bbc5 vvfat: introduce ERRP_AUTO_PROPAGATE
> 2da58d6 vpc: introduce ERRP_AUTO_PROPAGATE
> e7fb0b9 blkdebug: introduce ERRP_AUTO_PROPAGATE
> 39d367e qcow: introduce ERRP_AUTO_PROPAGATE
> 1b7546c qcow2: introduce ERRP_AUTO_PROPAGATE
> c0352a1 raw: introduce ERRP_AUTO_PROPAGATE
> 612aebf qed: introduce ERRP_AUTO_PROPAGATE
> 155f6ea parallels: introduce ERRP_AUTO_PROPAGATE
> 5d3c3fd blkverify: introduce ERRP_AUTO_PROPAGATE
> 36132e6 blklogwrites: introduce ERRP_AUTO_PROPAGATE
> 785cfb4 Quorum: introduce ERRP_AUTO_PROPAGATE
> 5acba63 Bootdevice: introduce ERRP_AUTO_PROPAGATE
> 0e0d3fb NVMe Block Driver: introduce ERRP_AUTO_PROPAGATE
> 1cf6911 GLUSTER: introduce ERRP_AUTO_PROPAGATE
> cb4c8f7 CURL: introduce ERRP_AUTO_PROPAGATE
> 4e32493 SSH: introduce ERRP_AUTO_PROPAGATE
> abbecd4 NFS: introduce ERRP_AUTO_PROPAGATE
> f4f937d nbd: introduce ERRP_AUTO_PROPAGATE
> 7b638b3 iSCSI: introduce ERRP_AUTO_PROPAGATE
> 4727ffc VDI: introduce ERRP_AUTO_PROPAGATE
> 2c03145 VHDX: introduce ERRP_AUTO_PROPAGATE
> 7916a87 Sheepdog: introduce ERRP_AUTO_PROPAGATE
> db15fdd RBD: introduce ERRP_AUTO_PROPAGATE
> 05ea2cf VMDK: introduce ERRP_AUTO_PROPAGATE
> ff11144 Record/replay: introduce ERRP_AUTO_PROPAGATE
> a95fab2 colo: introduce ERRP_AUTO_PROPAGATE
> be71202 Sockets: introduce ERRP_AUTO_PROPAGATE
> 69a59b0 I/O Channels: introduce ERRP_AUTO_PROPAGATE
> e4f56f3 Cryptography: introduce ERRP_AUTO_PROPAGATE
> 4f5f412 Migration: introduce ERRP_AUTO_PROPAGATE
> 985da1a TPM: introduce ERRP_AUTO_PROPAGATE
> b19cdab Tracing: introduce ERRP_AUTO_PROPAGATE
> 3113fc7 SLIRP: introduce ERRP_AUTO_PROPAGATE
> 51e2f48 QMP: introduce ERRP_AUTO_PROPAGATE
> 1c0c827 QOM: introduce ERRP_AUTO_PROPAGATE
> fc0eec4 qga: introduce ERRP_AUTO_PROPAGATE
> af16041 QAPI: introduce ERRP_AUTO_PROPAGATE
> 21ed21e cryptodev: introduce ERRP_AUTO_PROPAGATE
> 7ab6e12 hostmem: introduce ERRP_AUTO_PROPAGATE
> 994c02c net: introduce ERRP_AUTO_PROPAGATE
> 26fe9a4 Human Monitor (HMP): introduce ERRP_AUTO_PROPAGATE
> 82b7f8b Main loop: introduce ERRP_AUTO_PROPAGATE
> 863100d Graphics: introduce ERRP_AUTO_PROPAGATE
> 45a8d41 SPICE: introduce ERRP_AUTO_PROPAGATE
> 6d967ec Memory API: introduce ERRP_AUTO_PROPAGATE
> 5645325 Dump: introduce ERRP_AUTO_PROPAGATE
> 6d795b4 cmdline: introduce ERRP_AUTO_PROPAGATE
> 5fceaa3 chardev: introduce ERRP_AUTO_PROPAGATE
> d551bda scsi: introduce ERRP_AUTO_PROPAGATE
> cc3d83e block: introduce ERRP_AUTO_PROPAGATE
> 75b948b Audio: introduce ERRP_AUTO_PROPAGATE
> c3fee2f XIVE: introduce ERRP_AUTO_PROPAGATE
> 42ba3e1 fw_cfg: introduce ERRP_AUTO_PROPAGATE
> 90c4efa virtio-gpu: introduce ERRP_AUTO_PROPAGATE
> 4db3f47 eepro100: introduce ERRP_AUTO_PROPAGATE
> d7634f4 NVDIMM: introduce ERRP_AUTO_PROPAGATE
> 706ee21 megasas: introduce ERRP_AUTO_PROPAGATE
> a037a5c virtio-rng: introduce ERRP_AUTO_PROPAGATE
> dcf1769 virtio-serial: introduce ERRP_AUTO_PROPAGATE
> 77d26d1 virtio-input: introduce ERRP_AUTO_PROPAGATE
> 7f62cb1 virtio-ccw: introduce ERRP_AUTO_PROPAGATE
> 2bdd860 virtio-blk: introduce ERRP_AUTO_PROPAGATE
> 026260e virtio-9p: introduce ERRP_AUTO_PROPAGATE
> 191c845 virtio: introduce ERRP_AUTO_PROPAGATE
> 24510de vhost: introduce ERRP_AUTO_PROPAGATE
> e8a1779 vfio-ccw: introduce ERRP_AUTO_PROPAGATE
> 00baaa3 VFIO: introduce ERRP_AUTO_PROPAGATE
> 361c201 USB (serial adapter): introduce ERRP_AUTO_PROPAGATE
> 0f70e97 USB: introduce ERRP_AUTO_PROPAGATE
> 9548378 SD (Secure Card): introduce ERRP_AUTO_PROPAGATE
> 90b472d SCSI: introduce ERRP_AUTO_PROPAGATE
> 312220a pflash: introduce ERRP_AUTO_PROPAGATE
> 47a7bb5 Network devices: introduce ERRP_AUTO_PROPAGATE
> bf2e1ef ACPI/SMBIOS: introduce ERRP_AUTO_PROPAGATE
> 98f6d04 PCI: introduce ERRP_AUTO_PROPAGATE
> e3e14fe IPack: introduce ERRP_AUTO_PROPAGATE
> 9ef097c Floppy: introduce ERRP_AUTO_PROPAGATE
> 4ffbc39 IDE: introduce ERRP_AUTO_PROPAGATE
> a91553f X86 Machines: introduce ERRP_AUTO_PROPAGATE
> a83188d S390 Machines: introduce ERRP_AUTO_PROPAGATE
> 8cbe8c9 SPARC Machines: introduce ERRP_AUTO_PROPAGATE
> a36009a PowerPC Machines: introduce ERRP_AUTO_PROPAGATE
> f82c520 MIPS Machines: introduce ERRP_AUTO_PROPAGATE
> 7033c7f ARM Machines: introduce ERRP_AUTO_PROPAGATE
> 13406bd Hosts: introduce ERRP_AUTO_PROPAGATE
> 6923a91 xen: introduce ERRP_AUTO_PROPAGATE
> 0170e9e kvm: introduce ERRP_AUTO_PROPAGATE
> 7c4b0d9 tcg: introduce ERRP_AUTO_PROPAGATE
> 5cb4ba6 s390x: introduce ERRP_AUTO_PROPAGATE
> 53edd88 misc: introduce ERRP_AUTO_PROPAGATE
> a296770 python: add commit-per-subsystem.py
> feedc38 scripts: add coccinelle script to use auto propagated errp
> e712d0e error: auto propagated local_err
> 64b786f hw/vfio/ap: drop local_err from vfio_ap_realize
> 54ef2b0 backends/cryptodev: drop local_err from cryptodev_backend_complete()
> c605b8b qapi/error: add (Error **errp) cleaning APIs
> be9f380 include/qom/object.h: rename Error ** parameter to more common errp
> 948a5a3 include/block/snapshot.h: rename Error ** parameter to more common errp
> cda337b hw/usb: rename Error ** parameter to more common errp
> 1d22fd7 hw/tpm: rename Error ** parameter to more common errp
> 4023b59 hw/sd: rename Error ** parameter to more common errp
> c258678 hw/s390x: rename Error ** parameter to more common errp
> 07539ce monitor/qmp-cmds: rename Error ** parameter to more common errp
> a26c917 qga: rename Error ** parameter to more common errp
> 05cef6b hw/i386/amd_iommu: rename Error ** parameter to more common errp
> 398c2e9 block/snapshot: rename Error ** parameter to more common errp
> 4df0735 hw/core/qdev: cleanup Error ** variables
> a97739a 9pfs: well form error hint helpers
> f621e2a ppc: well form kvmppc_hint_smt_possible error hint helper
> cc9b38a nbd: well form nbd_iter_channel_error errp handler
> 9f18f68 qdev-monitor: well form error hint helpers
> 6c96ebe vnc: drop Error pointer indirection in vnc_client_io_error
> 8dac505 hmp: drop Error pointer indirection in hmp_handle_error
> ea1f06c error: rename errp to errp_in where it is IN-argument
> eb0e528 net/net: Clean up variable shadowing in net_client_init()
> 16c9d22 hw/core/loader-fit: fix freeing errp in fit_load_fdt
>
> === OUTPUT BEGIN ===
> 1/126 Checking commit 16c9d22dbdf8 (hw/core/loader-fit: fix freeing errp in fit_load_fdt)
> 2/126 Checking commit eb0e5289fbd9 (net/net: Clean up variable shadowing in net_client_init())
> 3/126 Checking commit ea1f06c5177f (error: rename errp to errp_in where it is IN-argument)
> 4/126 Checking commit 8dac50575fb7 (hmp: drop Error pointer indirection in hmp_handle_error)
> 5/126 Checking commit 6c96ebe7980d (vnc: drop Error pointer indirection in vnc_client_io_error)
> 6/126 Checking commit 9f18f68053d6 (qdev-monitor: well form error hint helpers)
> 7/126 Checking commit cc9b38ae2be7 (nbd: well form nbd_iter_channel_error errp handler)
> 8/126 Checking commit f621e2a212e4 (ppc: well form kvmppc_hint_smt_possible error hint helper)
> 9/126 Checking commit a97739a33dbf (9pfs: well form error hint helpers)
> 10/126 Checking commit 4df0735d30e8 (hw/core/qdev: cleanup Error ** variables)
> 11/126 Checking commit 398c2e9b6b6d (block/snapshot: rename Error ** parameter to more common errp)
> 12/126 Checking commit 05cef6ba60f4 (hw/i386/amd_iommu: rename Error ** parameter to more common errp)
> 13/126 Checking commit a26c9171c17b (qga: rename Error ** parameter to more common errp)
> 14/126 Checking commit 07539ce2d362 (monitor/qmp-cmds: rename Error ** parameter to more common errp)
> 15/126 Checking commit c258678c3b76 (hw/s390x: rename Error ** parameter to more common errp)
> 16/126 Checking commit 4023b59092f7 (hw/sd: rename Error ** parameter to more common errp)
> 17/126 Checking commit 1d22fd7fc323 (hw/tpm: rename Error ** parameter to more common errp)
> 18/126 Checking commit cda337b28d54 (hw/usb: rename Error ** parameter to more common errp)
> 19/126 Checking commit 948a5a31d4b1 (include/block/snapshot.h: rename Error ** parameter to more common errp)
> 20/126 Checking commit be9f38026447 (include/qom/object.h: rename Error ** parameter to more common errp)
> 21/126 Checking commit c605b8ba94ea (qapi/error: add (Error **errp) cleaning APIs)
> 22/126 Checking commit 54ef2b0ab6ea (backends/cryptodev: drop local_err from cryptodev_backend_complete())
> 23/126 Checking commit 64b786fd77cb (hw/vfio/ap: drop local_err from vfio_ap_realize)
> 24/126 Checking commit e712d0e3ad3b (error: auto propagated local_err)
> ERROR: Macros with multiple statements should be enclosed in a do - while loop
Sorry, but it worth it:)
> #79: FILE: include/qapi/error.h:381:
> +#define ERRP_AUTO_PROPAGATE() \
> + g_auto(ErrorPropagator) _auto_errp_prop = {.errp = errp}; \
> + errp = ((errp == NULL || *errp == error_fatal) \
> + ? &_auto_errp_prop.local_err : errp)
>
> total: 1 errors, 0 warnings, 44 lines checked
>
> Patch 24/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 25/126 Checking commit feedc38f888e (scripts: add coccinelle script to use auto propagated errp)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #11:
> new file mode 100644
>
> total: 0 errors, 1 warnings, 118 lines checked
>
> Patch 25/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
> 26/126 Checking commit a296770e4ed0 (python: add commit-per-subsystem.py)
> WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
> #13:
> new file mode 100755
>
> ERROR: line over 90 characters
> #51: FILE: python/commit-per-subsystem.py:34:
> + ret = subprocess.check_output(['git', 'diff', '--name-only'], encoding='utf-8').split('\n')
>
> WARNING: line over 80 characters
> #102: FILE: python/commit-per-subsystem.py:85:
> + path, mapper[path][0], subsystem, mapper_name, glob_count,
>
> ERROR: line over 90 characters
> #142: FILE: python/commit-per-subsystem.py:125:
> + print('Warning: nothing corresponds to "{}"'.format(fname))
>
> ERROR: line over 90 characters
> #148: FILE: python/commit-per-subsystem.py:131:
> + self.add(subsystem, f, self.map_glob_file, 'glob-file', n)
>
> ERROR: line over 90 characters
> #151: FILE: python/commit-per-subsystem.py:134:
> + self.add(subsystem, f, self.map_glob_dir, 'glob-dir', n)
I'll of course clean this all up.
>
> total: 4 errors, 2 warnings, 204 lines checked
>
> Patch 26/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 27/126 Checking commit 53edd882e0a2 (misc: introduce ERRP_AUTO_PROPAGATE)
> 28/126 Checking commit 5cb4ba6dc988 (s390x: introduce ERRP_AUTO_PROPAGATE)
> 29/126 Checking commit 7c4b0d9d6196 (tcg: introduce ERRP_AUTO_PROPAGATE)
> ERROR: suspect code indent for conditional statements (4, 4)
> #1360: FILE: target/i386/cpu.c:5405:
> + if (*errp) {
> }
Hmm. I'll try to drop such things with help of coccinelle.
>
> total: 1 errors, 0 warnings, 1656 lines checked
>
> Patch 29/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 30/126 Checking commit 0170e9e55113 (kvm: introduce ERRP_AUTO_PROPAGATE)
> 31/126 Checking commit 6923a91b51e4 (xen: introduce ERRP_AUTO_PROPAGATE)
> 32/126 Checking commit 13406bd38518 (Hosts: introduce ERRP_AUTO_PROPAGATE)
> 33/126 Checking commit 7033c7f6dbb2 (ARM Machines: introduce ERRP_AUTO_PROPAGATE)
> 34/126 Checking commit f82c520e220f (MIPS Machines: introduce ERRP_AUTO_PROPAGATE)
> 35/126 Checking commit a36009a9841f (PowerPC Machines: introduce ERRP_AUTO_PROPAGATE)
> ERROR: suspect code indent for conditional statements (8, 8)
> #2325: FILE: hw/ppc/spapr_pci.c:1615:
> + if (*errp) {
> }
>
> total: 1 errors, 0 warnings, 2188 lines checked
>
> Patch 35/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 36/126 Checking commit 8cbe8c93d975 (SPARC Machines: introduce ERRP_AUTO_PROPAGATE)
> 37/126 Checking commit a83188dacb99 (S390 Machines: introduce ERRP_AUTO_PROPAGATE)
> 38/126 Checking commit a91553fe4d04 (X86 Machines: introduce ERRP_AUTO_PROPAGATE)
> 39/126 Checking commit 4ffbc39501c4 (IDE: introduce ERRP_AUTO_PROPAGATE)
> 40/126 Checking commit 9ef097c08fd8 (Floppy: introduce ERRP_AUTO_PROPAGATE)
> 41/126 Checking commit e3e14fe9d883 (IPack: introduce ERRP_AUTO_PROPAGATE)
> 42/126 Checking commit 98f6d04bd17f (PCI: introduce ERRP_AUTO_PROPAGATE)
> 43/126 Checking commit bf2e1efbbb02 (ACPI/SMBIOS: introduce ERRP_AUTO_PROPAGATE)
> 44/126 Checking commit 47a7bb584c29 (Network devices: introduce ERRP_AUTO_PROPAGATE)
> 45/126 Checking commit 312220a1ddc8 (pflash: introduce ERRP_AUTO_PROPAGATE)
> 46/126 Checking commit 90b472de5a1d (SCSI: introduce ERRP_AUTO_PROPAGATE)
> 47/126 Checking commit 954837843356 (SD (Secure Card): introduce ERRP_AUTO_PROPAGATE)
> 48/126 Checking commit 0f70e97614d7 (USB: introduce ERRP_AUTO_PROPAGATE)
> 49/126 Checking commit 361c2015322c (USB (serial adapter): introduce ERRP_AUTO_PROPAGATE)
> 50/126 Checking commit 00baaa39204f (VFIO: introduce ERRP_AUTO_PROPAGATE)
> 51/126 Checking commit e8a177945afc (vfio-ccw: introduce ERRP_AUTO_PROPAGATE)
> 52/126 Checking commit 24510de2e8fc (vhost: introduce ERRP_AUTO_PROPAGATE)
> 53/126 Checking commit 191c845b48f3 (virtio: introduce ERRP_AUTO_PROPAGATE)
> 54/126 Checking commit 026260ea0442 (virtio-9p: introduce ERRP_AUTO_PROPAGATE)
> 55/126 Checking commit 2bdd8607add4 (virtio-blk: introduce ERRP_AUTO_PROPAGATE)
> 56/126 Checking commit 7f62cb15ac25 (virtio-ccw: introduce ERRP_AUTO_PROPAGATE)
> 57/126 Checking commit 77d26d1cfd2e (virtio-input: introduce ERRP_AUTO_PROPAGATE)
> 58/126 Checking commit dcf176995f8c (virtio-serial: introduce ERRP_AUTO_PROPAGATE)
> 59/126 Checking commit a037a5c408d5 (virtio-rng: introduce ERRP_AUTO_PROPAGATE)
> 60/126 Checking commit 706ee2136358 (megasas: introduce ERRP_AUTO_PROPAGATE)
> 61/126 Checking commit d7634f485cf3 (NVDIMM: introduce ERRP_AUTO_PROPAGATE)
> 62/126 Checking commit 4db3f478d427 (eepro100: introduce ERRP_AUTO_PROPAGATE)
> 63/126 Checking commit 90c4efaa36e0 (virtio-gpu: introduce ERRP_AUTO_PROPAGATE)
> 64/126 Checking commit 42ba3e1dd85c (fw_cfg: introduce ERRP_AUTO_PROPAGATE)
> 65/126 Checking commit c3fee2fc02f1 (XIVE: introduce ERRP_AUTO_PROPAGATE)
> 66/126 Checking commit 75b948b28b28 (Audio: introduce ERRP_AUTO_PROPAGATE)
> 67/126 Checking commit cc3d83e31b4e (block: introduce ERRP_AUTO_PROPAGATE)
> ERROR: suspect code indent for conditional statements (8, 8)
> #126: FILE: block.c:1298:
> + if (*errp) {
> } else if (bs->filename[0]) {
>
> ERROR: suspect code indent for conditional statements (12, 12)
> #556: FILE: block.c:3784:
> + if (*errp) {
> } else {
Will try to update coccinelle for this.
>
> ERROR: Error messages should not contain newlines
> #735: FILE: block.c:5791:
> + "This may become an error in future versions.\n");
preexisting
>
> total: 3 errors, 0 warnings, 2006 lines checked
>
> Patch 67/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 68/126 Checking commit d551bdac29ec (scsi: introduce ERRP_AUTO_PROPAGATE)
> 69/126 Checking commit 5fceaa34a239 (chardev: introduce ERRP_AUTO_PROPAGATE)
> 70/126 Checking commit 6d795b43413c (cmdline: introduce ERRP_AUTO_PROPAGATE)
> 71/126 Checking commit 56453257b1ac (Dump: introduce ERRP_AUTO_PROPAGATE)
> 72/126 Checking commit 6d967ec1fdf9 (Memory API: introduce ERRP_AUTO_PROPAGATE)
> 73/126 Checking commit 45a8d41d3e5f (SPICE: introduce ERRP_AUTO_PROPAGATE)
> 74/126 Checking commit 863100d31565 (Graphics: introduce ERRP_AUTO_PROPAGATE)
> 75/126 Checking commit 82b7f8bf101d (Main loop: introduce ERRP_AUTO_PROPAGATE)
> 76/126 Checking commit 26fe9a48828c (Human Monitor (HMP): introduce ERRP_AUTO_PROPAGATE)
> 77/126 Checking commit 994c02c4e44c (net: introduce ERRP_AUTO_PROPAGATE)
> 78/126 Checking commit 7ab6e12b144c (hostmem: introduce ERRP_AUTO_PROPAGATE)
> 79/126 Checking commit 21ed21e21d02 (cryptodev: introduce ERRP_AUTO_PROPAGATE)
> 80/126 Checking commit af1604131cde (QAPI: introduce ERRP_AUTO_PROPAGATE)
> ERROR: suspect code indent for conditional statements (4, 4)
> #131: FILE: qapi/qapi-visit-core.c:156:
> + if (*errp) {
> } else if (value > max) {
>
> ERROR: suspect code indent for conditional statements (4, 4)
> #147: FILE: qapi/qapi-visit-core.c:214:
> + if (*errp) {
> } else if (value < min || value > max) {
>
> ERROR: suspect code indent for conditional statements (4, 4)
> #232: FILE: qapi/qmp-dispatch.c:133:
> + if (*errp) {
> } else if (cmd->options & QCO_NO_SUCCESS_RESP) {
>
> total: 3 errors, 0 warnings, 182 lines checked
>
> Patch 80/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 81/126 Checking commit fc0eec4158dc (qga: introduce ERRP_AUTO_PROPAGATE)
> ERROR: suspect code indent for conditional statements (4, 4)
> #378: FILE: qga/commands-posix.c:1587:
> + if (*errp) {
> } else {
>
> ERROR: suspect code indent for conditional statements (4, 4)
> #407: FILE: qga/commands-posix.c:1613:
> + if (*errp) {
> } else {
>
> ERROR: suspect code indent for conditional statements (4, 4)
> #438: FILE: qga/commands-posix.c:1643:
> + if (*errp) {
> } else {
>
> total: 3 errors, 0 warnings, 669 lines checked
>
> Patch 81/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 82/126 Checking commit 1c0c827d5ca3 (QOM: introduce ERRP_AUTO_PROPAGATE)
> ERROR: suspect code indent for conditional statements (8, 8)
> #277: FILE: hw/core/qdev-properties.c:671:
> + if (*errp) {
> } else if (value < -1 || value > 255) {
>
> total: 1 errors, 0 warnings, 1298 lines checked
>
> Patch 82/126 has style problems, please review. If any of these errors
> are false positives report them to the maintainer, see
> CHECKPATCH in MAINTAINERS.
>
> 83/126 Checking commit 51e2f4872c1a (QMP: introduce ERRP_AUTO_PROPAGATE)
> 84/126 Checking commit 3113fc7bf720 (SLIRP: introduce ERRP_AUTO_PROPAGATE)
> 85/126 Checking commit b19cdab11e6c (Tracing: introduce ERRP_AUTO_PROPAGATE)
> 86/126 Checking commit 985da1a54aa6 (TPM: introduce ERRP_AUTO_PROPAGATE)
> 87/126 Checking commit 4f5f412b75c4 (Migration: introduce ERRP_AUTO_PROPAGATE)
> 88/126 Checking commit e4f56f3b8dae (Cryptography: introduce ERRP_AUTO_PROPAGATE)
> 89/126 Checking commit 69a59b07492d (I/O Channels: introduce ERRP_AUTO_PROPAGATE)
> 90/126 Checking commit be712020a7c1 (Sockets: introduce ERRP_AUTO_PROPAGATE)
> 91/126 Checking commit a95fab2ba9c0 (colo: introduce ERRP_AUTO_PROPAGATE)
> 92/126 Checking commit ff11144b4d5e (Record/replay: introduce ERRP_AUTO_PROPAGATE)
> 93/126 Checking commit 05ea2cfe6a49 (VMDK: introduce ERRP_AUTO_PROPAGATE)
> 94/126 Checking commit db15fdd137ca (RBD: introduce ERRP_AUTO_PROPAGATE)
> 95/126 Checking commit 7916a87501ff (Sheepdog: introduce ERRP_AUTO_PROPAGATE)
> 96/126 Checking commit 2c03145f174d (VHDX: introduce ERRP_AUTO_PROPAGATE)
> 97/126 Checking commit 4727ffc9e2b1 (VDI: introduce ERRP_AUTO_PROPAGATE)
> 98/126 Checking commit 7b638b375230 (iSCSI: introduce ERRP_AUTO_PROPAGATE)
> 99/126 Checking commit f4f937dedc90 (nbd: introduce ERRP_AUTO_PROPAGATE)
> 100/126 Checking commit abbecd4c8ca1 (NFS: introduce ERRP_AUTO_PROPAGATE)
> 101/126 Checking commit 4e324932309d (SSH: introduce ERRP_AUTO_PROPAGATE)
> 102/126 Checking commit cb4c8f74b637 (CURL: introduce ERRP_AUTO_PROPAGATE)
> 103/126 Checking commit 1cf6911a3113 (GLUSTER: introduce ERRP_AUTO_PROPAGATE)
> 104/126 Checking commit 0e0d3fbc80a8 (NVMe Block Driver: introduce ERRP_AUTO_PROPAGATE)
> 105/126 Checking commit 5acba634d3f2 (Bootdevice: introduce ERRP_AUTO_PROPAGATE)
> 106/126 Checking commit 785cfb4bfd6e (Quorum: introduce ERRP_AUTO_PROPAGATE)
> 107/126 Checking commit 36132e6d953e (blklogwrites: introduce ERRP_AUTO_PROPAGATE)
> 108/126 Checking commit 5d3c3fde30a1 (blkverify: introduce ERRP_AUTO_PROPAGATE)
> 109/126 Checking commit 155f6ea5fe1b (parallels: introduce ERRP_AUTO_PROPAGATE)
> 110/126 Checking commit 612aebf400b0 (qed: introduce ERRP_AUTO_PROPAGATE)
> 111/126 Checking commit c0352a192b8f (raw: introduce ERRP_AUTO_PROPAGATE)
> 112/126 Checking commit 1b7546c66586 (qcow2: introduce ERRP_AUTO_PROPAGATE)
> 113/126 Checking commit 39d367e15ae7 (qcow: introduce ERRP_AUTO_PROPAGATE)
> 114/126 Checking commit e7fb0b9d3ec5 (blkdebug: introduce ERRP_AUTO_PROPAGATE)
> 115/126 Checking commit 2da58d6731e0 (vpc: introduce ERRP_AUTO_PROPAGATE)
> 116/126 Checking commit 225bbc51c347 (vvfat: introduce ERRP_AUTO_PROPAGATE)
> 117/126 Checking commit 84365ab2dc2d (Replication: introduce ERRP_AUTO_PROPAGATE)
> 118/126 Checking commit 21ee5f83d833 (PVRDMA: introduce ERRP_AUTO_PROPAGATE)
> 119/126 Checking commit dd3f3104f838 (hw/core/bus.c: introduce ERRP_AUTO_PROPAGATE)
> 120/126 Checking commit b5b1e0a54e36 (hw/cpu/core.c: introduce ERRP_AUTO_PROPAGATE)
> 121/126 Checking commit 1534a928d277 (hw/sd/ssi-sd.c: introduce ERRP_AUTO_PROPAGATE)
> 122/126 Checking commit 8969c6fe5523 (iothread.c: introduce ERRP_AUTO_PROPAGATE)
> 123/126 Checking commit 5f766d764fb0 (memory_mapping.c: introduce ERRP_AUTO_PROPAGATE)
> 124/126 Checking commit 2e4f3717dda3 (target/tilegx/cpu.c: introduce ERRP_AUTO_PROPAGATE)
> 125/126 Checking commit 3ee65677767a (tests/test-image-locking.c: introduce ERRP_AUTO_PROPAGATE)
> 126/126 Checking commit 319b2061bfba (util/qemu-config.c: introduce ERRP_AUTO_PROPAGATE)
> === OUTPUT END ===
>
> Test command exited with code: 1
>
>
> The full log is available at
> http://patchew.org/logs/20191011160552.22907-1-vsementsov@virtuozzo.com/testing.checkpatch/?type=message.
> ---
> Email generated automatically by Patchew [https://patchew.org/].
> Please send your feedback to patchew-devel@redhat.com
>
--
Best regards,
Vladimir
On 10/11/19 11:03 AM, 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. Is there a repo containing these patches, to make it easier to play with them locally without having to 'git am' the entire 126 messages? > 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 So, whether or not we take commit-per-subsystem.py, the overall series appears to be a nice reduction in lines of code. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
11.10.2019 20:02, Eric Blake wrote: > On 10/11/19 11:03 AM, 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. > > Is there a repo containing these patches, to make it easier to play with them locally without having to 'git am' the entire 126 messages? Done: https://src.openvz.org/users/vsementsov/repos/qemu/browse https://src.openvz.org/scm/~vsementsov/qemu.git #tag up-auto-local-err-v5 > > >> 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 > > So, whether or not we take commit-per-subsystem.py, the overall series appears to be a nice reduction in lines of code. > -- Best regards, Vladimir
© 2016 - 2026 Red Hat, Inc.