[PATCH v3 00/26] Error handling fixes & cleanups

Markus Armbruster posted 26 patches 1 week ago
Test FreeBSD passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200630090351.1247703-1-armbru@redhat.com
Maintainers: Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <Alistair.Francis@wdc.com>, Gerd Hoffmann <kraxel@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Max Reitz <mreitz@redhat.com>, Christian Schoenebeck <qemu_oss@crudebyte.com>, Alistair Francis <alistair@alistair23.me>, Eric Auger <eric.auger@redhat.com>, David Gibson <david@gibson.dropbear.id.au>, Juan Quintela <quintela@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Xie Changlong <xiechanglong.d@gmail.com>, Aurelien Jarno <aurelien@aurel32.net>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Eduardo Habkost <ehabkost@redhat.com>, Wen Congyang <wencongyang2@huawei.com>, Markus Armbruster <armbru@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Sagar Karandikar <sagark@eecs.berkeley.edu>, Jason Wang <jasowang@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Greg Kurz <groug@kaod.org>, Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>, Peter Maydell <peter.maydell@linaro.org>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Richard Henderson <rth@twiddle.net>, Michael Roth <mdroth@linux.vnet.ibm.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
include/hw/qdev-core.h             |   5 +-
chardev/char-socket.c              |   6 +-
hw/9pfs/9p.c                       |   6 +-
hw/acpi/pcihp.c                    |   3 +-
hw/acpi/piix4.c                    |   2 +-
hw/arm/armsse.c                    |  61 +++++-----------
hw/arm/armv7m.c                    |   7 +-
hw/arm/aspeed_ast2600.c            |  35 ++++-----
hw/arm/aspeed_soc.c                |  29 +++-----
hw/arm/bcm2835_peripherals.c       |  12 ++--
hw/arm/fsl-imx25.c                 |  12 ++--
hw/arm/fsl-imx6.c                  |  12 ++--
hw/arm/nrf51_soc.c                 |   6 +-
hw/arm/stm32f205_soc.c             |   2 +-
hw/arm/stm32f405_soc.c             |   2 +-
hw/arm/virt.c                      |   4 +-
hw/char/virtio-serial-bus.c        |   4 +-
hw/core/bus.c                      |   8 +--
hw/display/virtio-gpu-pci.c        |   2 +-
hw/display/virtio-vga.c            |   2 +-
hw/dma/sparc32_dma.c               |   6 +-
hw/dma/xilinx_axidma.c             |  12 +---
hw/i386/amd_iommu.c                |   6 +-
hw/i386/x86.c                      |   8 ++-
hw/mips/cps.c                      |  35 +++++----
hw/misc/macio/macio.c              |   3 +-
hw/net/virtio-net.c                |   2 +-
hw/net/xilinx_axienet.c            |  12 +---
hw/pci/pci.c                       |   3 -
hw/pci/pcie.c                      |   2 +-
hw/pci/shpc.c                      |   2 +-
hw/ppc/spapr.c                     |   4 +-
hw/ppc/spapr_drc.c                 |   4 +-
hw/ppc/spapr_pci.c                 |   4 +-
hw/riscv/riscv_hart.c              |  14 ++--
hw/riscv/sifive_u.c                |  12 +++-
hw/s390x/ap-bridge.c               |   2 +-
hw/s390x/css-bridge.c              |   2 +-
hw/s390x/s390-pci-bus.c            |  14 +---
hw/scsi/scsi-bus.c                 |   2 +-
hw/scsi/virtio-scsi.c              |   4 +-
hw/scsi/vmw_pvscsi.c               |   2 +-
hw/sd/milkymist-memcard.c          |   5 +-
hw/usb/bus.c                       |   2 +-
hw/usb/dev-mtp.c                   |   2 -
hw/usb/dev-smartcard-reader.c      |   2 +-
hw/virtio/virtio-iommu-pci.c       |   2 +-
hw/xen/xen-bus.c                   |   2 +-
hw/xen/xen-legacy-backend.c        |   2 +-
migration/rdma.c                   |  19 +++--
qga/commands-posix.c               |   1 +
tests/check-block-qdict.c          |  24 ++-----
tests/check-qobject.c              |   5 +-
tests/check-qom-proplist.c         |  14 ++--
tests/test-base64.c                |   3 +-
tests/test-bdrv-graph-mod.c        |   4 +-
tests/test-block-iothread.c        |   3 +-
tests/test-crypto-cipher.c         |   8 +--
tests/test-io-task.c               |   4 +-
tests/test-logging.c               |  12 +---
tests/test-qemu-opts.c             |  22 ++----
tests/test-replication.c           | 109 +++++++++--------------------
tests/test-string-input-visitor.c  |  33 +++------
tests/test-string-output-visitor.c |  16 ++---
tests/test-util-filemonitor.c      |   1 +
ui/vnc.c                           |   6 +-
66 files changed, 240 insertions(+), 436 deletions(-)

[PATCH v3 00/26] Error handling fixes & cleanups

Posted by Markus Armbruster 1 week ago
This series addresses a number of error handling issues I found while
working on error handling improvements.

v3:
* PATCH 20: Can actually fail; propagate [Igor, Paolo]
* PATCH 26: New

Markus Armbruster (26):
  net/virtio: Fix failover_replug_primary() return value regression
  pci: Delete useless error_propagate()
  Clean up some calls to ignore Error objects the right way
  tests: Use &error_abort where appropriate
  tests: Use error_free_or_abort() where appropriate
  usb/dev-mtp: Fix Error double free after inotify failure
  spapr: Plug minor memory leak in spapr_machine_init()
  qga: Plug unlikely memory leak in guest-set-memory-blocks
  sd/milkymist-memcard: Plug minor memory leak in realize
  test-util-filemonitor: Plug unlikely memory leak
  vnc: Plug minor memory leak in vnc_display_open()
  aspeed: Clean up roundabout error propagation
  qdev: Drop qbus_set_bus_hotplug_handler() parameter @errp
  qdev: Drop qbus_set_hotplug_handler() parameter @errp
  hw: Fix error API violation around object_property_set_link()
  hw/arm: Drop useless object_property_set_link() error handling
  riscv/sifive_u: Fix sifive_u_soc_realize() error API violations
  riscv_hart: Fix riscv_harts_realize() error API violations
  mips/cps: Fix mips_cps_realize() error API violations
  x86: Fix x86_cpu_new() error handling
  amd_iommu: Fix amdvi_realize() error API violation
  arm/stm32f205 arm/stm32f405: Fix realize error API violation
  aspeed: Fix realize error API violation
  hw/arm/armsse: Fix armsse_realize() error API violation
  arm/{bcm2835,fsl-imx25,fsl-imx6}: Fix realize error API violations
  migration/rdma: Plug memory leaks in qemu_rdma_registration_stop()

 include/hw/qdev-core.h             |   5 +-
 chardev/char-socket.c              |   6 +-
 hw/9pfs/9p.c                       |   6 +-
 hw/acpi/pcihp.c                    |   3 +-
 hw/acpi/piix4.c                    |   2 +-
 hw/arm/armsse.c                    |  61 +++++-----------
 hw/arm/armv7m.c                    |   7 +-
 hw/arm/aspeed_ast2600.c            |  35 ++++-----
 hw/arm/aspeed_soc.c                |  29 +++-----
 hw/arm/bcm2835_peripherals.c       |  12 ++--
 hw/arm/fsl-imx25.c                 |  12 ++--
 hw/arm/fsl-imx6.c                  |  12 ++--
 hw/arm/nrf51_soc.c                 |   6 +-
 hw/arm/stm32f205_soc.c             |   2 +-
 hw/arm/stm32f405_soc.c             |   2 +-
 hw/arm/virt.c                      |   4 +-
 hw/char/virtio-serial-bus.c        |   4 +-
 hw/core/bus.c                      |   8 +--
 hw/display/virtio-gpu-pci.c        |   2 +-
 hw/display/virtio-vga.c            |   2 +-
 hw/dma/sparc32_dma.c               |   6 +-
 hw/dma/xilinx_axidma.c             |  12 +---
 hw/i386/amd_iommu.c                |   6 +-
 hw/i386/x86.c                      |   8 ++-
 hw/mips/cps.c                      |  35 +++++----
 hw/misc/macio/macio.c              |   3 +-
 hw/net/virtio-net.c                |   2 +-
 hw/net/xilinx_axienet.c            |  12 +---
 hw/pci/pci.c                       |   3 -
 hw/pci/pcie.c                      |   2 +-
 hw/pci/shpc.c                      |   2 +-
 hw/ppc/spapr.c                     |   4 +-
 hw/ppc/spapr_drc.c                 |   4 +-
 hw/ppc/spapr_pci.c                 |   4 +-
 hw/riscv/riscv_hart.c              |  14 ++--
 hw/riscv/sifive_u.c                |  12 +++-
 hw/s390x/ap-bridge.c               |   2 +-
 hw/s390x/css-bridge.c              |   2 +-
 hw/s390x/s390-pci-bus.c            |  14 +---
 hw/scsi/scsi-bus.c                 |   2 +-
 hw/scsi/virtio-scsi.c              |   4 +-
 hw/scsi/vmw_pvscsi.c               |   2 +-
 hw/sd/milkymist-memcard.c          |   5 +-
 hw/usb/bus.c                       |   2 +-
 hw/usb/dev-mtp.c                   |   2 -
 hw/usb/dev-smartcard-reader.c      |   2 +-
 hw/virtio/virtio-iommu-pci.c       |   2 +-
 hw/xen/xen-bus.c                   |   2 +-
 hw/xen/xen-legacy-backend.c        |   2 +-
 migration/rdma.c                   |  19 +++--
 qga/commands-posix.c               |   1 +
 tests/check-block-qdict.c          |  24 ++-----
 tests/check-qobject.c              |   5 +-
 tests/check-qom-proplist.c         |  14 ++--
 tests/test-base64.c                |   3 +-
 tests/test-bdrv-graph-mod.c        |   4 +-
 tests/test-block-iothread.c        |   3 +-
 tests/test-crypto-cipher.c         |   8 +--
 tests/test-io-task.c               |   4 +-
 tests/test-logging.c               |  12 +---
 tests/test-qemu-opts.c             |  22 ++----
 tests/test-replication.c           | 109 +++++++++--------------------
 tests/test-string-input-visitor.c  |  33 +++------
 tests/test-string-output-visitor.c |  16 ++---
 tests/test-util-filemonitor.c      |   1 +
 ui/vnc.c                           |   6 +-
 66 files changed, 240 insertions(+), 436 deletions(-)

-- 
2.26.2