[GEDI] [RFC v5 000/126] error: auto propagated local_err
Vladimir Sementsov-Ogievskiy
vsementsov at virtuozzo.com
Wed Nov 20 09:50:54 UTC 2019
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 at redhat.com>
>> CC: "Gonglei (Arei)" <arei.gonglei at huawei.com>
>> CC: Eduardo Habkost <ehabkost at redhat.com>
>> CC: Igor Mammedov <imammedo at redhat.com>
>> CC: Laurent Vivier <lvivier at redhat.com>
>> CC: Amit Shah <amit at kernel.org>
>> CC: Kevin Wolf <kwolf at redhat.com>
>> CC: Max Reitz <mreitz at redhat.com>
>> CC: John Snow <jsnow at redhat.com>
>> CC: Ari Sundholm <ari at tuxera.com>
>> CC: Pavel Dovgalyuk <pavel.dovgaluk at ispras.ru>
>> CC: Paolo Bonzini <pbonzini at redhat.com>
>> CC: Stefan Hajnoczi <stefanha at redhat.com>
>> CC: Fam Zheng <fam at euphon.net>
>> CC: Stefan Weil <sw at weilnetz.de>
>> CC: Ronnie Sahlberg <ronniesahlberg at gmail.com>
>> CC: Peter Lieven <pl at kamp.de>
>> CC: Eric Blake <eblake at redhat.com>
>> CC: "Denis V. Lunev" <den at openvz.org>
>> CC: Markus Armbruster <armbru at redhat.com>
>> CC: Alberto Garcia <berto at igalia.com>
>> CC: Jason Dillaman <dillaman at redhat.com>
>> CC: Wen Congyang <wencongyang2 at huawei.com>
>> CC: Xie Changlong <xiechanglong.d at gmail.com>
>> CC: Liu Yuan <namei.unix at gmail.com>
>> CC: "Richard W.M. Jones" <rjones at redhat.com>
>> CC: Jeff Cody <codyprime at gmail.com>
>> CC: "Marc-André Lureau" <marcandre.lureau at redhat.com>
>> CC: "Daniel P. Berrangé" <berrange at redhat.com>
>> CC: Richard Henderson <rth at twiddle.net>
>> CC: Greg Kurz <groug at kaod.org>
>> CC: "Michael S. Tsirkin" <mst at redhat.com>
>> CC: Marcel Apfelbaum <marcel.apfelbaum at gmail.com>
>> CC: Beniamino Galvani <b.galvani at gmail.com>
>> CC: Peter Maydell <peter.maydell at linaro.org>
>> CC: "Cédric Le Goater" <clg at kaod.org>
>> CC: Andrew Jeffery <andrew at aj.id.au>
>> CC: Joel Stanley <joel at jms.id.au>
>> CC: Andrew Baumann <Andrew.Baumann at microsoft.com>
>> CC: "Philippe Mathieu-Daudé" <philmd at redhat.com>
>> CC: Antony Pavlov <antonynpavlov at gmail.com>
>> CC: Jean-Christophe Dubois <jcd at tribudubois.net>
>> CC: Peter Chubb <peter.chubb at nicta.com.au>
>> CC: Subbaraya Sundeep <sundeep.lkml at gmail.com>
>> CC: Eric Auger <eric.auger at redhat.com>
>> CC: Alistair Francis <alistair at alistair23.me>
>> CC: "Edgar E. Iglesias" <edgar.iglesias at gmail.com>
>> CC: Stefano Stabellini <sstabellini at kernel.org>
>> CC: Anthony Perard <anthony.perard at citrix.com>
>> CC: Paul Durrant <paul at xen.org>
>> CC: Paul Burton <pburton at wavecomp.com>
>> CC: Aleksandar Rikalo <arikalo at wavecomp.com>
>> CC: Chris Wulff <crwulff at gmail.com>
>> CC: Marek Vasut <marex at denx.de>
>> CC: David Gibson <david at gibson.dropbear.id.au>
>> CC: Cornelia Huck <cohuck at redhat.com>
>> CC: Halil Pasic <pasic at linux.ibm.com>
>> CC: Christian Borntraeger <borntraeger at de.ibm.com>
>> CC: "Hervé Poussineau" <hpoussin at reactos.org>
>> CC: Xiao Guangrong <xiaoguangrong.eric at gmail.com>
>> CC: Aurelien Jarno <aurelien at aurel32.net>
>> CC: Aleksandar Markovic <amarkovic at wavecomp.com>
>> CC: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
>> CC: Jason Wang <jasowang at redhat.com>
>> CC: Laszlo Ersek <lersek at redhat.com>
>> CC: Yuval Shaia <yuval.shaia at oracle.com>
>> CC: Palmer Dabbelt <palmer at sifive.com>
>> CC: Sagar Karandikar <sagark at eecs.berkeley.edu>
>> CC: Bastian Koppelmann <kbastian at mail.uni-paderborn.de>
>> CC: David Hildenbrand <david at redhat.com>
>> CC: Thomas Huth <thuth at redhat.com>
>> CC: Eric Farman <farman at linux.ibm.com>
>> CC: Matthew Rosato <mjrosato at linux.ibm.com>
>> CC: Hannes Reinecke <hare at suse.com>
>> CC: Michael Walle <michael at walle.cc>
>> CC: Artyom Tarasenko <atar4qemu at gmail.com>
>> CC: Stefan Berger <stefanb at linux.ibm.com>
>> CC: Samuel Thibault <samuel.thibault at ens-lyon.org>
>> CC: Alex Williamson <alex.williamson at redhat.com>
>> CC: Tony Krowiak <akrowiak at linux.ibm.com>
>> CC: Pierre Morel <pmorel at linux.ibm.com>
>> CC: Michael Roth <mdroth at linux.vnet.ibm.com>
>> CC: Hailiang Zhang <zhang.zhanghailiang at huawei.com>
>> CC: Juan Quintela <quintela at redhat.com>
>> CC: "Dr. David Alan Gilbert" <dgilbert at redhat.com>
>> CC: Luigi Rizzo <rizzo at iet.unipi.it>
>> CC: Giuseppe Lettieri <g.lettieri at iet.unipi.it>
>> CC: Vincenzo Maffione <v.maffione at gmail.com>
>> CC: Jan Kiszka <jan.kiszka at siemens.com>
>> CC: Anthony Green <green at moxielogic.com>
>> CC: Stafford Horne <shorne at gmail.com>
>> CC: Guan Xuetao <gxt at mprc.pku.edu.cn>
>> CC: Max Filippov <jcmvbkbc at gmail.com>
>> CC: qemu-block at nongnu.org
>> CC: integration at gluster.org
>> CC: sheepdog at lists.wpkg.org
>> CC: qemu-arm at nongnu.org
>> CC: xen-devel at lists.xenproject.org
>> CC: qemu-ppc at nongnu.org
>> CC: qemu-s390x at nongnu.org
>> CC: qemu-riscv at nongnu.org
>>
>> include/block/nbd.h | 1 +
>> include/block/snapshot.h | 2 +-
>> include/monitor/hmp.h | 2 +-
>> include/qapi/error.h | 69 ++++-
>> include/qom/object.h | 4 +-
>> target/ppc/kvm_ppc.h | 4 +-
>> ui/vnc.h | 2 +-
>> audio/audio.c | 12 +-
>> backends/cryptodev-vhost-user.c | 10 +-
>> backends/cryptodev.c | 25 +-
>> backends/hostmem-file.c | 21 +-
>> backends/hostmem-memfd.c | 18 +-
>> backends/hostmem.c | 41 ++-
>> backends/rng.c | 7 +-
>> block.c | 225 +++++++---------
>> block/backup.c | 1 +
>> block/blkdebug.c | 36 ++-
>> block/blklogwrites.c | 22 +-
>> block/blkreplay.c | 7 +-
>> block/blkverify.c | 17 +-
>> block/block-backend.c | 19 +-
>> block/commit.c | 7 +-
>> block/crypto.c | 14 +-
>> block/curl.c | 7 +-
>> block/dirty-bitmap.c | 1 +
>> block/file-posix.c | 79 +++---
>> block/file-win32.c | 29 +-
>> block/gluster.c | 69 +++--
>> block/io.c | 12 +-
>> block/iscsi.c | 36 ++-
>> block/mirror.c | 19 +-
>> block/nbd.c | 59 ++--
>> block/nfs.c | 7 +-
>> block/nvme.c | 19 +-
>> block/parallels.c | 30 +--
>> block/qapi.c | 26 +-
>> block/qcow.c | 17 +-
>> block/qcow2-bitmap.c | 9 +-
>> block/qcow2.c | 98 +++----
>> block/qed.c | 18 +-
>> block/quorum.c | 23 +-
>> block/raw-format.c | 7 +-
>> block/rbd.c | 29 +-
>> block/replication.c | 40 ++-
>> block/sheepdog.c | 73 +++--
>> block/snapshot.c | 20 +-
>> block/ssh.c | 12 +-
>> block/throttle-groups.c | 24 +-
>> block/throttle.c | 7 +-
>> block/vdi.c | 15 +-
>> block/vhdx-log.c | 1 +
>> block/vhdx.c | 22 +-
>> block/vmdk.c | 41 ++-
>> block/vpc.c | 28 +-
>> block/vvfat.c | 12 +-
>> block/vxhs.c | 23 +-
>> blockdev.c | 252 ++++++++----------
>> blockjob.c | 8 +-
>> bootdevice.c | 31 +--
>> chardev/char-socket.c | 7 +-
>> chardev/char.c | 20 +-
>> chardev/spice.c | 1 +
>> crypto/block-luks.c | 56 ++--
>> crypto/secret.c | 17 +-
>> crypto/tlssession.c | 7 +-
>> dump/dump-hmp-cmds.c | 4 +-
>> dump/dump.c | 151 +++++------
>> dump/win_dump.c | 29 +-
>> exec.c | 21 +-
>> hw/9pfs/9p-local.c | 12 +-
>> hw/9pfs/9p-proxy.c | 5 +-
>> hw/9pfs/9p.c | 1 +
>> hw/acpi/core.c | 18 +-
>> hw/acpi/cpu_hotplug.c | 2 +-
>> hw/acpi/ich9.c | 30 +--
>> hw/acpi/memory_hotplug.c | 7 +-
>> hw/arm/allwinner-a10.c | 27 +-
>> hw/arm/armv7m.c | 52 ++--
>> hw/arm/aspeed_soc.c | 1 +
>> hw/arm/bcm2835_peripherals.c | 85 +++---
>> hw/arm/bcm2836.c | 41 ++-
>> hw/arm/digic.c | 22 +-
>> hw/arm/fsl-imx25.c | 62 ++---
>> hw/arm/fsl-imx31.c | 57 ++--
>> hw/arm/fsl-imx6.c | 81 +++---
>> hw/arm/integratorcp.c | 7 +-
>> hw/arm/msf2-soc.c | 22 +-
>> hw/arm/nrf51_soc.c | 47 ++--
>> hw/arm/smmu-common.c | 7 +-
>> hw/arm/smmuv3.c | 7 +-
>> hw/arm/stm32f205_soc.c | 39 ++-
>> hw/arm/virt.c | 2 +
>> hw/arm/xlnx-versal-virt.c | 7 +-
>> hw/arm/xlnx-zynqmp.c | 86 +++---
>> hw/audio/intel-hda.c | 13 +-
>> hw/block/dataplane/virtio-blk.c | 1 +
>> hw/block/dataplane/xen-block.c | 17 +-
>> hw/block/fdc.c | 19 +-
>> hw/block/onenand.c | 7 +-
>> hw/block/pflash_cfi01.c | 7 +-
>> hw/block/pflash_cfi02.c | 7 +-
>> hw/block/vhost-user-blk.c | 6 +-
>> hw/block/virtio-blk.c | 7 +-
>> hw/block/xen-block.c | 119 ++++-----
>> hw/char/debugcon.c | 7 +-
>> hw/char/serial-pci-multi.c | 7 +-
>> hw/char/serial-pci.c | 7 +-
>> hw/char/virtio-serial-bus.c | 7 +-
>> hw/core/bus.c | 15 +-
>> hw/core/loader-fit.c | 7 +-
>> hw/core/machine-hmp-cmds.c | 6 +-
>> hw/core/machine.c | 21 +-
>> hw/core/numa.c | 51 ++--
>> hw/core/qdev-properties-system.c | 28 +-
>> hw/core/qdev-properties.c | 89 +++----
>> hw/core/qdev.c | 58 ++--
>> hw/cpu/a15mpcore.c | 7 +-
>> hw/cpu/a9mpcore.c | 27 +-
>> hw/cpu/arm11mpcore.c | 22 +-
>> hw/cpu/core.c | 14 +-
>> hw/cpu/realview_mpcore.c | 12 +-
>> hw/display/bcm2835_fb.c | 6 +-
>> hw/display/qxl.c | 7 +-
>> hw/display/virtio-gpu-base.c | 7 +-
>> hw/display/virtio-gpu-pci.c | 7 +-
>> hw/display/virtio-vga.c | 7 +-
>> hw/dma/bcm2835_dma.c | 6 +-
>> hw/dma/xilinx_axidma.c | 22 +-
>> hw/gpio/aspeed_gpio.c | 7 +-
>> hw/gpio/bcm2835_gpio.c | 10 +-
>> hw/i386/amd_iommu.c | 14 +-
>> hw/i386/pc.c | 120 ++++-----
>> hw/ide/qdev.c | 16 +-
>> hw/input/virtio-input.c | 14 +-
>> hw/intc/apic_common.c | 7 +-
>> hw/intc/arm_gic.c | 7 +-
>> hw/intc/arm_gic_kvm.c | 12 +-
>> hw/intc/arm_gicv3.c | 12 +-
>> hw/intc/arm_gicv3_its_kvm.c | 7 +-
>> hw/intc/arm_gicv3_kvm.c | 17 +-
>> hw/intc/armv7m_nvic.c | 12 +-
>> hw/intc/nios2_iic.c | 6 +-
>> hw/intc/pnv_xive.c | 15 +-
>> hw/intc/realview_gic.c | 7 +-
>> hw/intc/s390_flic_kvm.c | 9 +-
>> hw/intc/spapr_xive.c | 12 +-
>> hw/intc/spapr_xive_kvm.c | 55 ++--
>> hw/intc/xics.c | 28 +-
>> hw/intc/xics_kvm.c | 30 +--
>> hw/intc/xics_pnv.c | 7 +-
>> hw/intc/xics_spapr.c | 7 +-
>> hw/intc/xive.c | 27 +-
>> hw/ipack/ipack.c | 5 +-
>> hw/isa/pc87312.c | 7 +-
>> hw/mem/memory-device.c | 20 +-
>> hw/mem/nvdimm.c | 25 +-
>> hw/mem/pc-dimm.c | 23 +-
>> hw/microblaze/xlnx-zynqmp-pmu.c | 12 +-
>> hw/mips/cps.c | 46 ++--
>> hw/misc/bcm2835_mbox.c | 6 +-
>> hw/misc/bcm2835_property.c | 10 +-
>> hw/misc/ivshmem.c | 37 ++-
>> hw/misc/macio/macio.c | 68 ++---
>> hw/misc/msf2-sysreg.c | 1 +
>> hw/misc/tmp105.c | 7 +-
>> hw/misc/tmp421.c | 7 +-
>> hw/net/dp8393x.c | 7 +-
>> hw/net/eepro100.c | 7 +-
>> hw/net/ne2000-isa.c | 17 +-
>> hw/net/xilinx_axienet.c | 22 +-
>> hw/nvram/fw_cfg.c | 14 +-
>> hw/nvram/nrf51_nvm.c | 7 +-
>> hw/pci-bridge/gen_pcie_root_port.c | 7 +-
>> hw/pci-bridge/pci_bridge_dev.c | 13 +-
>> hw/pci-bridge/pci_expander_bridge.c | 7 +-
>> hw/pci-bridge/pcie_pci_bridge.c | 8 +-
>> hw/pci-bridge/pcie_root_port.c | 1 +
>> hw/pci-host/piix.c | 7 +-
>> hw/pci/pci.c | 19 +-
>> hw/pci/pcie.c | 7 +-
>> hw/pci/shpc.c | 14 +-
>> hw/ppc/e500.c | 7 +-
>> hw/ppc/mac_newworld.c | 1 +
>> hw/ppc/pnv.c | 109 ++++----
>> hw/ppc/pnv_core.c | 23 +-
>> hw/ppc/pnv_homer.c | 5 +-
>> hw/ppc/pnv_lpc.c | 26 +-
>> hw/ppc/pnv_occ.c | 5 +-
>> hw/ppc/pnv_psi.c | 23 +-
>> hw/ppc/spapr.c | 133 ++++-----
>> hw/ppc/spapr_caps.c | 57 ++--
>> hw/ppc/spapr_cpu_core.c | 36 ++-
>> hw/ppc/spapr_drc.c | 48 ++--
>> hw/ppc/spapr_irq.c | 98 +++----
>> hw/ppc/spapr_pci.c | 97 +++----
>> hw/ppc/spapr_vio.c | 12 +-
>> hw/rdma/vmw/pvrdma_main.c | 1 +
>> hw/riscv/riscv_hart.c | 7 +-
>> hw/riscv/sifive_e.c | 7 +-
>> hw/riscv/sifive_u.c | 11 +-
>> hw/s390x/3270-ccw.c | 13 +-
>> hw/s390x/css-bridge.c | 7 +-
>> hw/s390x/css.c | 7 +-
>> hw/s390x/event-facility.c | 2 +-
>> hw/s390x/ipl.c | 24 +-
>> hw/s390x/s390-ccw.c | 19 +-
>> hw/s390x/s390-pci-bus.c | 37 ++-
>> hw/s390x/s390-skeys.c | 7 +-
>> hw/s390x/s390-stattrib.c | 3 +-
>> hw/s390x/s390-virtio-ccw.c | 11 +-
>> hw/s390x/sclp.c | 15 +-
>> hw/s390x/tod-kvm.c | 14 +-
>> hw/s390x/virtio-ccw-crypto.c | 7 +-
>> hw/s390x/virtio-ccw-rng.c | 7 +-
>> hw/s390x/virtio-ccw.c | 13 +-
>> hw/scsi/esp-pci.c | 7 +-
>> hw/scsi/megasas.c | 11 +-
>> hw/scsi/mptsas.c | 13 +-
>> hw/scsi/scsi-bus.c | 24 +-
>> hw/scsi/scsi-disk.c | 8 +-
>> hw/scsi/scsi-generic.c | 1 +
>> hw/scsi/vhost-scsi.c | 12 +-
>> hw/scsi/vhost-user-scsi.c | 7 +-
>> hw/scsi/virtio-scsi.c | 7 +-
>> hw/sd/milkymist-memcard.c | 11 +-
>> hw/sd/sdhci-pci.c | 7 +-
>> hw/sd/sdhci.c | 23 +-
>> hw/sd/ssi-sd.c | 14 +-
>> hw/smbios/smbios.c | 42 ++-
>> hw/sparc/sun4m.c | 21 +-
>> hw/sparc64/sun4u.c | 7 +-
>> hw/timer/aspeed_timer.c | 6 +-
>> hw/tpm/tpm_emulator.c | 8 +-
>> hw/tpm/tpm_util.c | 7 +-
>> hw/usb/bus.c | 37 ++-
>> hw/usb/ccid-card-emulated.c | 1 +
>> hw/usb/dev-network.c | 2 +-
>> hw/usb/dev-serial.c | 7 +-
>> hw/usb/dev-smartcard-reader.c | 14 +-
>> hw/usb/dev-storage.c | 17 +-
>> hw/usb/hcd-ohci-pci.c | 7 +-
>> hw/usb/hcd-ohci.c | 14 +-
>> hw/usb/hcd-uhci.c | 7 +-
>> hw/usb/hcd-xhci.c | 13 +-
>> hw/vfio/ap.c | 16 +-
>> hw/vfio/ccw.c | 24 +-
>> hw/vfio/common.c | 3 +
>> hw/vfio/pci-quirks.c | 8 +-
>> hw/vfio/pci.c | 42 ++-
>> hw/vfio/platform.c | 1 +
>> hw/virtio/vhost-vsock.c | 1 +
>> hw/virtio/virtio-balloon.c | 35 ++-
>> hw/virtio/virtio-bus.c | 17 +-
>> hw/virtio/virtio-pci.c | 2 +
>> hw/virtio/virtio-rng-pci.c | 7 +-
>> hw/virtio/virtio-rng.c | 7 +-
>> hw/virtio/virtio.c | 19 +-
>> hw/watchdog/wdt_aspeed.c | 5 +-
>> hw/xen/xen-backend.c | 7 +-
>> hw/xen/xen-bus.c | 92 +++----
>> hw/xen/xen-host-pci-device.c | 27 +-
>> hw/xen/xen_pt.c | 25 +-
>> hw/xen/xen_pt_config_init.c | 20 +-
>> io/dns-resolver.c | 7 +-
>> io/net-listener.c | 7 +-
>> iothread.c | 27 +-
>> job.c | 7 +-
>> memory.c | 63 ++---
>> memory_mapping.c | 7 +-
>> migration/colo.c | 38 ++-
>> migration/migration.c | 39 ++-
>> migration/ram.c | 13 +-
>> migration/rdma.c | 13 +-
>> migration/savevm.c | 2 +
>> migration/socket.c | 18 +-
>> monitor/hmp-cmds.c | 155 ++++++-----
>> monitor/misc.c | 9 +-
>> monitor/qmp-cmds.c | 9 +-
>> nbd/client.c | 5 +
>> nbd/server.c | 5 +
>> net/can/can_host.c | 7 +-
>> net/dump.c | 15 +-
>> net/filter-buffer.c | 15 +-
>> net/filter.c | 7 +-
>> net/net.c | 58 ++--
>> net/netmap.c | 7 +-
>> net/slirp.c | 7 +-
>> net/tap.c | 47 ++--
>> qapi/qapi-visit-core.c | 56 ++--
>> qapi/qmp-dispatch.c | 7 +-
>> qapi/string-input-visitor.c | 7 +-
>> qdev-monitor.c | 69 +++--
>> qga/commands-posix.c | 222 +++++++--------
>> qga/commands-win32.c | 141 +++++-----
>> qga/commands.c | 12 +-
>> qom/object.c | 246 ++++++++---------
>> qom/object_interfaces.c | 27 +-
>> qom/qom-hmp-cmds.c | 4 +-
>> qom/qom-qobject.c | 7 +-
>> replication.c | 28 +-
>> scsi/pr-manager-helper.c | 7 +-
>> target/alpha/cpu.c | 7 +-
>> target/arm/cpu.c | 7 +-
>> target/arm/cpu64.c | 11 +-
>> target/cris/cpu.c | 7 +-
>> target/hppa/cpu.c | 7 +-
>> target/i386/cpu.c | 117 ++++----
>> target/lm32/cpu.c | 7 +-
>> target/m68k/cpu.c | 7 +-
>> target/microblaze/cpu.c | 7 +-
>> target/mips/cpu.c | 7 +-
>> target/moxie/cpu.c | 7 +-
>> target/nios2/cpu.c | 7 +-
>> target/openrisc/cpu.c | 7 +-
>> target/ppc/compat.c | 20 +-
>> target/ppc/kvm.c | 14 +-
>> target/ppc/translate_init.inc.c | 26 +-
>> target/riscv/cpu.c | 7 +-
>> target/s390x/cpu.c | 26 +-
>> target/s390x/cpu_models.c | 2 +
>> target/sh4/cpu.c | 7 +-
>> target/sparc/cpu.c | 14 +-
>> target/tilegx/cpu.c | 7 +-
>> target/tricore/cpu.c | 7 +-
>> target/unicore32/cpu.c | 7 +-
>> target/xtensa/cpu.c | 7 +-
>> tests/test-image-locking.c | 7 +-
>> tpm.c | 7 +-
>> trace/qmp.c | 14 +-
>> ui/input-barrier.c | 7 +-
>> ui/input.c | 14 +-
>> ui/vnc.c | 39 ++-
>> util/error.c | 30 +--
>> util/main-loop.c | 5 +-
>> util/oslib-posix.c | 6 +-
>> util/qemu-config.c | 29 +-
>> util/qemu-option.c | 59 ++--
>> util/qemu-sockets.c | 31 +--
>> vl.c | 14 +-
>> python/commit-per-subsystem.py | 204 ++++++++++++++
>> scripts/coccinelle/auto-propagated-errp.cocci | 118 ++++++++
>> 341 files changed, 3851 insertions(+), 4455 deletions(-)
>> create mode 100755 python/commit-per-subsystem.py
>> create mode 100644 scripts/coccinelle/auto-propagated-errp.cocci
>>
>
>
--
Best regards,
Vladimir
More information about the integration
mailing list