qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 975ac4: qom: Clearer reference counting in ob


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 975ac4: qom: Clearer reference counting in object_initiali...
Date: Fri, 15 May 2020 03:30:32 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 975ac4559c4c00010e05f7a3e782eeb9497837ea
      
https://github.com/qemu/qemu/commit/975ac4559c4c00010e05f7a3e782eeb9497837ea
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M qom/object.c

  Log Message:
  -----------
  qom: Clearer reference counting in object_initialize_childv()

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: ddfb0baaf26e9e1b9869506c6e389dc8eb016de0
      
https://github.com/qemu/qemu/commit/ddfb0baaf26e9e1b9869506c6e389dc8eb016de0
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/dma/xlnx-zdma.c
    M hw/net/virtio-net.c
    M hw/ppc/spapr_drc.c
    M include/qom/object.h
    M memory.c
    M monitor/monitor-internal.h
    M qom/container.c
    M qom/object.c

  Log Message:
  -----------
  qom: Clean up inconsistent use of gchar * vs. char *

Uses of gchar * in qom/object.h:

* ObjectProperty member @name

  Functions that take a property name argument all use char *.  Change
  the member to match.

* ObjectProperty member @type

  Functions that take a property type argument or return it all use
  char *.  Change the member to match.

* ObjectProperty member @description

  Functions that take a property description argument all use char *.
  Change the member to match.

* object_resolve_path_component() parameter @part

  Path components are property names.  Most callers pass char *
  arguments.  Change the parameter to match.  Adjust the few callers
  that pass gchar * to pass char *.

* Return value of object_get_canonical_path_component(),
  object_get_canonical_path()

  Most callers convert their return values right back to char *.
  Change the return value to match.  Adjust the few callers where that
  would add a conversion to gchar * to use char * instead.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: f73a32a5147ef7ff90f682d6ba3a6ef11ff97d9e
      
https://github.com/qemu/qemu/commit/f73a32a5147ef7ff90f682d6ba3a6ef11ff97d9e
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M qom/object.c

  Log Message:
  -----------
  qom: Drop object_property_del_child()'s unused parameter @errp

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: b555f89fcbdc797423f6d6a41b76ef5fa5272235
      
https://github.com/qemu/qemu/commit/b555f89fcbdc797423f6d6a41b76ef5fa5272235
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M qom/object.c

  Log Message:
  -----------
  qom: Simplify object_property_get_enum()

Reuse object_property_get_str().  Switches from the string to the
qobject visitor under the hood.

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: 44a17fe05a363d0f94cd0706fbe64cb4524adf54
      
https://github.com/qemu/qemu/commit/44a17fe05a363d0f94cd0706fbe64cb4524adf54
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/core/machine-qmp-cmds.c
    M include/qom/object.h
    M qom/object.c

  Log Message:
  -----------
  qom: Drop convenience method object_property_get_uint16List()

qom/object.c provides object_property_get_TYPE() and
object_property_set_TYPE() for a number of common types.  These are
all convenience wrappers around object_property_get_qobject() and
object_property_set_qobject().

Except for object_property_get_uint16List(), which is unusual in two ways:

* It bypasses object_property_get_qobject().  Fixable; the previous
  commit did it for object_property_get_enum())

* It stores the value through a parameter.  Its contract claims it
  returns the value, like the other functions do.  Also fixable.

Fixing is not worthwhile, though: object_property_get_uint16List() has
seen exactly one user in six years.

Convert the lone user to do its job with the generic
object_property_get_qobject(), and drop object_property_get_uint16List().

Signed-off-by: Markus Armbruster <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
[Commit message typo fixed]


  Commit: 702518877220187a858da1a6ba08d53995dc6e2f
      
https://github.com/qemu/qemu/commit/702518877220187a858da1a6ba08d53995dc6e2f
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M include/qom/object.h
    M qom/object.c

  Log Message:
  -----------
  qom: Make all the object_property_add_FOO() return the property

Some object_property_add_FOO() return the newly added property, some
don't.  Clean that up.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: 7eecec7d1224890b0d04479dd4736e1eefaa72dc
      
https://github.com/qemu/qemu/commit/7eecec7d1224890b0d04479dd4736e1eefaa72dc
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/tcg/tcg-all.c
    M backends/hostmem-memfd.c
    M backends/hostmem.c
    M hw/arm/aspeed.c
    M hw/arm/vexpress.c
    M hw/arm/virt.c
    M hw/arm/xlnx-zcu102.c
    M hw/core/machine.c
    M hw/core/qdev.c
    M hw/i386/microvm.c
    M hw/i386/pc.c
    M hw/i386/x86.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/pnv.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M hw/ppc/spapr_rng.c
    M hw/riscv/sifive_u.c
    M hw/s390x/css-bridge.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/sparc/sun4m.c
    M hw/xen/xen-common.c
    M include/qom/object.h
    M qom/object.c
    M target/arm/cpu64.c
    M target/arm/kvm.c
    M target/i386/sev.c
    M target/ppc/compat.c
    M target/s390x/cpu_models.c

  Log Message:
  -----------
  qom: Drop object_property_set_description() parameter @errp

object_property_set_description() and
object_class_property_set_description() fail only when property @name
is not found.

There are 85 calls of object_property_set_description() and
object_class_property_set_description().  None of them can fail:

* 84 immediately follow the creation of the property.

* The one in spapr_rng_instance_init() refers to a property created in
  spapr_rng_class_init(), from spapr_rng_properties[].

Every one of them still gets to decide what to pass for @errp.

51 calls pass &error_abort, 32 calls pass NULL, one receives the error
and propagates it to &error_abort, and one propagates it to
&error_fatal.  I'm actually surprised none of them violates the Error
API.

What are we gaining by letting callers handle the "property not found"
error?  Use when the property is not known to exist is simpler: you
don't have to guard the call with a check.  We haven't found such a
use in 5+ years.  Until we do, let's make life a bit simpler and drop
the @errp parameter.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
[One semantic rebase conflict resolved]


  Commit: 48942138177a89c920d0a01397ccbc4040090e5e
      
https://github.com/qemu/qemu/commit/48942138177a89c920d0a01397ccbc4040090e5e
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M tests/check-qom-proplist.c

  Log Message:
  -----------
  tests/check-qom-proplist: Improve iterator coverage

The tests' "qemu-dummy" device has only class properties.  Turn one of
them into an instance property.  test_dummy_class_iterator() expects
one fewer property than test_dummy_iterator().  Rewrite
test_dummy_prop_iterator() to take expected properties as argument.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: e274408cdc07b431ef6dfdbb5011c5ef434702e8
      
https://github.com/qemu/qemu/commit/e274408cdc07b431ef6dfdbb5011c5ef434702e8
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M target/s390x/cpu_features_def.inc.h

  Log Message:
  -----------
  s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256

Both s390_features[S390_FEAT_PCC_CMAC_AES_256].name and
s390_features[S390_FEAT_PCC_CMAC_EAES_256].name is
"pcc-cmac-eaes-256".  The former is obviously a pasto.

Impact:

* s390_feat_bitmap_to_ascii() misidentifies S390_FEAT_PCC_CMAC_AES_256
  as "pcc-cmac-eaes-256".  Affects QMP commands query-cpu-definitions,
  query-cpu-model-expansion, query-cpu-model-baseline,
  query-cpu-model-comparison, and the error message when
  s390_realize_cpu_model() fails in check_compatibility().

* s390_cpu_list() also misidentifies it.  Affects -cpu help.

* s390_cpu_model_register_props() creates CPU property
  "pcc-cmac-eaes-256" twice.  The second one fails, but the error is
  ignored (a later commit will change that).  Results in a single
  property "pcc-cmac-eaes-256" with the description for
  S390_FEAT_PCC_CMAC_AES_256, and no property for
  S390_FEAT_PCC_CMAC_EAES_256.  CPU properties are visible in CLI -cpu
  and -device, QMP & HMP device_add, QMP device-list-properties, and
  QOM introspection.

The two features are almost always used via their group msa4.  Such
use is not affected by this bug.

Fix by deleting the wayward 'e'.

Fixes: 782417446279 ("s390x/cpumodel: introduce CPU features")
Cc: Halil Pasic <address@hidden>
Cc: Cornelia Huck <address@hidden>
Cc: Christian Borntraeger <address@hidden>
Cc: Richard Henderson <address@hidden>
Cc: David Hildenbrand <address@hidden>
Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Tested-by: Christian Borntraeger <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
[Lost paragraph in commit message restored, Fixes: tweaked]


  Commit: e508430619b3b26112117b6e06ebc5f8f1d54aed
      
https://github.com/qemu/qemu/commit/e508430619b3b26112117b6e06ebc5f8f1d54aed
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/isa/isa-superio.c

  Log Message:
  -----------
  hw/isa/superio: Make the components QOM children

isa_superio_realize() attempts to make isa-parallel and isa-serial QOM
children, but this does not work, because it calls
object_property_add_child() after realizing with qdev_init_nofail().
Realizing a device without a parent gives it one: it gets put into the
"/machine/unattached/" orphanage.  The extra
object_property_add_child() fails, and isa_superio_realize() ignores
the error.

Move the object_property_add_child() before qdev_init_nofail(), and
pass &error_abort.

For the other components, isa_superio_realize() doesn't even try.  Add
object_property_add_child() there.

This affects machines 40p, clipper and fulong2e.

For instance, fulong2e has its vt82c686b-superio (which is an
isa-superio) at /machine/unattached/device[9].  Before the patch, its
components are at /machine/unattached/device[10] .. [14].  Afterwards,
they are at
/machine/unattached/device[9]/{parallel0,serial0,serial1,isa-fdc,i8042}.

Cc: Michael S. Tsirkin <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: a13f20422dc657719c3fa335788300c7ccf464ee
      
https://github.com/qemu/qemu/commit/a13f20422dc657719c3fa335788300c7ccf464ee
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/net/e1000.c

  Log Message:
  -----------
  e1000: Don't run e1000_instance_init() twice

QOM object initialization runs .instance_init() for the type and all
its supertypes; see object_init_with_type().

Both TYPE_E1000_BASE and its concrete subtypes set .instance_init() to
e1000_instance_init().  For the concrete subtypes, it duly gets run
twice.  The second run fails, but the error gets ignored (a later
commit will change that).

Remove it from the subtypes.

Cc: Jason Wang <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Acked-by: Jason Wang <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: 5462cc8110845f88ae80b82799121d15c9c3a8fc
      
https://github.com/qemu/qemu/commit/5462cc8110845f88ae80b82799121d15c9c3a8fc
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/arm/bcm2835_peripherals.c

  Log Message:
  -----------
  hw/arm/bcm2835: Drop futile attempts at QOM-adopting memory

The "bcm2835-peripherals" device's .instance_init() method
bcm2835_peripherals_init() attempts to make two memory regions QOM
children of the device.  This is futile, because memory_region_init()
already did.  The errors are ignored (a later commit will change
that).  Drop the useless calls.

Cc: Peter Maydell <address@hidden>
Cc: Andrew Baumann <address@hidden>
Cc: "Philippe Mathieu-Daudé" <address@hidden>
Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>


  Commit: 9f742c28f52d55ff83dc441a0cea365239a4906d
      
https://github.com/qemu/qemu/commit/9f742c28f52d55ff83dc441a0cea365239a4906d
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/core/qdev.c

  Log Message:
  -----------
  qdev: Clean up qdev_connect_gpio_out_named()

Both qdev_connect_gpio_out_named() and device_set_realized() put
objects without a parent into the "/machine/unattached/" orphanage.

qdev_connect_gpio_out_named() needs a lengthy comment to explain how
it works.  It exploits that object_property_add_child() can fail only
when we got a parent already, and ignoring that error does what we
want.  True.  If it failed due to "duplicate property", we'd be in
trouble, but that would be a programming error.

device_set_realized() is cleaner: it checks whether we need a parent,
then calls object_property_add_child(), aborting on failure.  No need
for a comment, and programming errors get caught.

Change qdev_connect_gpio_out_named() to match.

Cc: Peter Crosthwaite <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: d2623129a7dec1d3041ad1221dda1ca49c667532
      
https://github.com/qemu/qemu/commit/d2623129a7dec1d3041ad1221dda1ca49c667532
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/tcg/tcg-all.c
    M authz/list.c
    M authz/listfile.c
    M authz/pamacct.c
    M authz/simple.c
    M backends/cryptodev-vhost-user.c
    M backends/cryptodev.c
    M backends/dbus-vmstate.c
    M backends/hostmem-file.c
    M backends/hostmem-memfd.c
    M backends/hostmem.c
    M backends/rng-egd.c
    M backends/rng-random.c
    M backends/rng.c
    M backends/vhost-user.c
    M block/throttle-groups.c
    M bootdevice.c
    M chardev/char-socket.c
    M chardev/char.c
    M crypto/secret.c
    M crypto/tlscreds.c
    M crypto/tlscredsanon.c
    M crypto/tlscredspsk.c
    M crypto/tlscredsx509.c
    M hw/acpi/ich9.c
    M hw/acpi/pcihp.c
    M hw/acpi/piix4.c
    M hw/arm/allwinner-a10.c
    M hw/arm/allwinner-h3.c
    M hw/arm/armv7m.c
    M hw/arm/aspeed.c
    M hw/arm/aspeed_ast2600.c
    M hw/arm/aspeed_soc.c
    M hw/arm/bcm2835_peripherals.c
    M hw/arm/bcm2836.c
    M hw/arm/cubieboard.c
    M hw/arm/mcimx6ul-evk.c
    M hw/arm/mcimx7d-sabre.c
    M hw/arm/msf2-soc.c
    M hw/arm/nrf51_soc.c
    M hw/arm/orangepi.c
    M hw/arm/raspi.c
    M hw/arm/sabrelite.c
    M hw/arm/sbsa-ref.c
    M hw/arm/vexpress.c
    M hw/arm/virt.c
    M hw/arm/xilinx_zynq.c
    M hw/arm/xlnx-versal-virt.c
    M hw/arm/xlnx-versal.c
    M hw/arm/xlnx-zcu102.c
    M hw/arm/xlnx-zynqmp.c
    M hw/audio/marvell_88w8618.c
    M hw/audio/pcspk.c
    M hw/core/bus.c
    M hw/core/machine.c
    M hw/core/qdev-clock.c
    M hw/core/qdev-properties.c
    M hw/core/qdev.c
    M hw/cpu/core.c
    M hw/display/bochs-display.c
    M hw/display/sm501.c
    M hw/display/vga-pci.c
    M hw/display/vhost-user-gpu-pci.c
    M hw/display/vhost-user-gpu.c
    M hw/display/vhost-user-vga.c
    M hw/display/xlnx_dp.c
    M hw/dma/sparc32_dma.c
    M hw/dma/xilinx_axidma.c
    M hw/dma/xlnx-zdma.c
    M hw/gpio/aspeed_gpio.c
    M hw/hyperv/hyperv.c
    M hw/i386/microvm.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/pc_sysfw.c
    M hw/i386/x86.c
    M hw/ide/macio.c
    M hw/ide/qdev.c
    M hw/input/vhost-user-input.c
    M hw/intc/apic_common.c
    M hw/intc/s390_flic.c
    M hw/intc/xics.c
    M hw/intc/xive.c
    M hw/ipmi/ipmi.c
    M hw/isa/isa-superio.c
    M hw/isa/lpc_ich9.c
    M hw/mem/nvdimm.c
    M hw/mem/pc-dimm.c
    M hw/microblaze/petalogix_ml605_mmu.c
    M hw/misc/aspeed_sdmc.c
    M hw/misc/edu.c
    M hw/misc/mac_via.c
    M hw/misc/macio/gpio.c
    M hw/misc/macio/macio.c
    M hw/misc/macio/pmu.c
    M hw/misc/pca9552.c
    M hw/misc/tmp105.c
    M hw/misc/tmp421.c
    M hw/net/cadence_gem.c
    M hw/net/can/can_kvaser_pci.c
    M hw/net/can/can_mioe3680_pci.c
    M hw/net/can/can_pcm3680_pci.c
    M hw/net/ne2000-isa.c
    M hw/net/xilinx_axienet.c
    M hw/nios2/10m50_devboard.c
    M hw/nvram/fw_cfg.c
    M hw/pci-host/grackle.c
    M hw/pci-host/i440fx.c
    M hw/pci-host/pnv_phb3_msi.c
    M hw/pci-host/pnv_phb3_pbcq.c
    M hw/pci-host/q35.c
    M hw/pci-host/sabre.c
    M hw/pci-host/uninorth.c
    M hw/pcmcia/pxa2xx.c
    M hw/ppc/e500.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/pnv.c
    M hw/ppc/pnv_bmc.c
    M hw/ppc/pnv_core.c
    M hw/ppc/pnv_psi.c
    M hw/ppc/prep.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_iommu.c
    M hw/ppc/spapr_irq.c
    M hw/ppc/spapr_rtc.c
    M hw/riscv/sifive_u.c
    M hw/riscv/virt.c
    M hw/rtc/mc146818rtc.c
    M hw/s390x/ap-bridge.c
    M hw/s390x/css-bridge.c
    M hw/s390x/event-facility.c
    M hw/s390x/s390-skeys.c
    M hw/s390x/s390-stattrib.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/sclp.c
    M hw/s390x/tod.c
    M hw/s390x/virtio-ccw-balloon.c
    M hw/s390x/virtio-ccw-blk.c
    M hw/s390x/virtio-ccw-net.c
    M hw/scsi/scsi-bus.c
    M hw/sparc/sun4m.c
    M hw/sparc64/sun4u.c
    M hw/ssi/xilinx_spips.c
    M hw/usb/bus.c
    M hw/usb/dev-storage.c
    M hw/vfio/pci-quirks.c
    M hw/virtio/vhost-scsi-pci.c
    M hw/virtio/vhost-user-blk-pci.c
    M hw/virtio/vhost-user-input-pci.c
    M hw/virtio/vhost-user-scsi-pci.c
    M hw/virtio/virtio-balloon-pci.c
    M hw/virtio/virtio-balloon.c
    M hw/virtio/virtio-blk-pci.c
    M hw/virtio/virtio-net-pci.c
    M hw/virtio/virtio-rng.c
    M hw/xen/xen-common.c
    M include/qom/object.h
    M iothread.c
    M memory.c
    M net/can/can_host.c
    M net/can/can_socketcan.c
    M net/colo-compare.c
    M net/dump.c
    M net/filter-buffer.c
    M net/filter-mirror.c
    M net/filter-rewriter.c
    M net/filter.c
    M qdev-monitor.c
    M qom/container.c
    M qom/object.c
    M qom/object_interfaces.c
    M scsi/pr-manager-helper.c
    M softmmu/vl.c
    M target/arm/cpu.c
    M target/arm/cpu64.c
    M target/arm/kvm.c
    M target/i386/cpu.c
    M target/i386/sev.c
    M target/ppc/compat.c
    M target/s390x/cpu.c
    M target/s390x/cpu_models.c
    M tests/check-qom-proplist.c
    M tests/test-qdev-global-props.c
    M ui/console.c
    M ui/input-barrier.c
    M ui/input-linux.c

  Log Message:
  -----------
  qom: Drop parameter @errp of object_property_add() & friends

The only way object_property_add() can fail is when a property with
the same name already exists.  Since our property names are all
hardcoded, failure is a programming error, and the appropriate way to
handle it is passing &error_abort.

Same for its variants, except for object_property_add_child(), which
additionally fails when the child already has a parent.  Parentage is
also under program control, so this is a programming error, too.

We have a bit over 500 callers.  Almost half of them pass
&error_abort, slightly fewer ignore errors, one test case handles
errors, and the remaining few callers pass them to their own callers.

The previous few commits demonstrated once again that ignoring
programming errors is a bad idea.

Of the few ones that pass on errors, several violate the Error API.
The Error ** argument must be NULL, &error_abort, &error_fatal, or a
pointer to a variable containing NULL.  Passing an argument of the
latter kind twice without clearing it in between is wrong: if the
first call sets an error, it no longer points to NULL for the second
call.  ich9_pm_add_properties(), sparc32_ledma_realize(),
sparc32_dma_realize(), xilinx_axidma_realize(), xilinx_enet_realize()
are wrong that way.

When the one appropriate choice of argument is &error_abort, letting
users pick the argument is a bad idea.

Drop parameter @errp and assert the preconditions instead.

There's one exception to "duplicate property name is a programming
error": the way object_property_add() implements the magic (and
undocumented) "automatic arrayification".  Don't drop @errp there.
Instead, rename object_property_add() to object_property_try_add(),
and add the obvious wrapper object_property_add().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
[Two semantic rebase conflicts resolved]


  Commit: 40c2281cc3342573bd72895997b5cfaddee36ef2
      
https://github.com/qemu/qemu/commit/40c2281cc3342573bd72895997b5cfaddee36ef2
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M bootdevice.c
    M hw/acpi/ich9.c
    M hw/block/fdc.c
    M hw/block/nvme.c
    M hw/block/vhost-user-blk.c
    M hw/block/virtio-blk.c
    M hw/core/qdev-properties.c
    M hw/core/qdev.c
    M hw/isa/lpc_ich9.c
    M hw/net/e1000.c
    M hw/net/e1000e.c
    M hw/net/eepro100.c
    M hw/net/lance.c
    M hw/net/lasi_i82596.c
    M hw/net/ne2000-pci.c
    M hw/net/pcnet-pci.c
    M hw/net/rtl8139.c
    M hw/net/spapr_llan.c
    M hw/net/sungem.c
    M hw/net/sunhme.c
    M hw/net/tulip.c
    M hw/net/virtio-net.c
    M hw/net/vmxnet3.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M hw/s390x/s390-ccw.c
    M hw/scsi/scsi-bus.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c
    M hw/usb/dev-network.c
    M hw/usb/host-libusb.c
    M hw/usb/redirect.c
    M hw/vfio/pci.c
    M include/hw/acpi/ich9.h
    M include/hw/ppc/spapr.h
    M include/hw/qdev-core.h
    M include/sysemu/sysemu.h
    M target/ppc/compat.c
    M target/ppc/cpu.h

  Log Message:
  -----------
  Drop more @errp parameters after previous commit

Several functions can't fail anymore: ich9_pm_add_properties(),
device_add_bootindex_property(), ppc_compat_add_property(),
spapr_caps_add_properties(), PropertyInfo.create().  Drop their @errp
parameter.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: b69c3c21a5d11075d42100d5cfe0a736593fae6b
      
https://github.com/qemu/qemu/commit/b69c3c21a5d11075d42100d5cfe0a736593fae6b
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/9pfs/9p.c
    M hw/9pfs/9p.h
    M hw/9pfs/virtio-9p-device.c
    M hw/acpi/pcihp.c
    M hw/audio/intel-hda.c
    M hw/block/pflash_cfi02.c
    M hw/block/vhost-user-blk.c
    M hw/block/virtio-blk.c
    M hw/block/xen-block.c
    M hw/char/serial-pci-multi.c
    M hw/char/serial-pci.c
    M hw/char/serial.c
    M hw/char/virtio-console.c
    M hw/char/virtio-serial-bus.c
    M hw/core/bus.c
    M hw/core/cpu.c
    M hw/core/generic-loader.c
    M hw/core/qdev.c
    M hw/display/virtio-gpu-base.c
    M hw/dma/rc4030.c
    M hw/i386/kvm/apic.c
    M hw/i386/pc.c
    M hw/ide/qdev.c
    M hw/input/virtio-input-hid.c
    M hw/input/virtio-input-host.c
    M hw/input/virtio-input.c
    M hw/intc/apic.c
    M hw/intc/apic_common.c
    M hw/intc/ioapic.c
    M hw/intc/xics.c
    M hw/ipack/ipack.c
    M hw/mem/pc-dimm.c
    M hw/net/virtio-net.c
    M hw/nvram/mac_nvram.c
    M hw/pci/pci.c
    M hw/pci/pcie.c
    M hw/pci/shpc.c
    M hw/ppc/pnv_core.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_iommu.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_tpm_proxy.c
    M hw/s390x/css-bridge.c
    M hw/s390x/s390-ccw.c
    M hw/s390x/s390-pci-bus.c
    M hw/s390x/virtio-ccw.c
    M hw/s390x/virtio-ccw.h
    M hw/scsi/lsi53c895a.c
    M hw/scsi/scsi-bus.c
    M hw/scsi/scsi-disk.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c
    M hw/scsi/virtio-scsi.c
    M hw/sd/sdhci-internal.h
    M hw/sd/sdhci-pci.c
    M hw/sd/sdhci.c
    M hw/usb/bus.c
    M hw/usb/ccid-card-emulated.c
    M hw/usb/ccid.h
    M hw/usb/dev-audio.c
    M hw/usb/dev-hid.c
    M hw/usb/dev-hub.c
    M hw/usb/dev-network.c
    M hw/usb/dev-smartcard-reader.c
    M hw/usb/dev-uas.c
    M hw/usb/dev-wacom.c
    M hw/usb/hcd-ehci-pci.c
    M hw/usb/hcd-ehci.c
    M hw/usb/hcd-ehci.h
    M hw/usb/host-libusb.c
    M hw/usb/redirect.c
    M hw/vfio/ap.c
    M hw/vfio/ccw.c
    M hw/virtio/vhost-user-fs.c
    M hw/virtio/vhost-vsock.c
    M hw/virtio/virtio-balloon.c
    M hw/virtio/virtio-crypto.c
    M hw/virtio/virtio-iommu.c
    M hw/virtio/virtio-pmem.c
    M hw/virtio/virtio-rng.c
    M hw/virtio/virtio.c
    M hw/watchdog/wdt_diag288.c
    M hw/xen/xen-bus.c
    M include/hw/qdev-core.h
    M include/hw/s390x/s390-ccw.h
    M include/hw/scsi/scsi.h
    M include/hw/usb.h
    M include/hw/xen/xen-block.h
    M include/hw/xen/xen-bus.h
    M target/i386/cpu.c
    M target/ppc/translate_init.inc.c

  Log Message:
  -----------
  qdev: Unrealize must not fail

Devices may have component devices and buses.

Device realization may fail.  Realization is recursive: a device's
realize() method realizes its components, and device_set_realized()
realizes its buses (which should in turn realize the devices on that
bus, except bus_set_realized() doesn't implement that, yet).

When realization of a component or bus fails, we need to roll back:
unrealize everything we realized so far.  If any of these unrealizes
failed, the device would be left in an inconsistent state.  Must not
happen.

device_set_realized() lets it happen: it ignores errors in the roll
back code starting at label child_realize_fail.

Since realization is recursive, unrealization must be recursive, too.
But how could a partly failed unrealize be rolled back?  We'd have to
re-realize, which can fail.  This design is fundamentally broken.

device_set_realized() does not roll back at all.  Instead, it keeps
unrealizing, ignoring further errors.

It can screw up even for a device with no buses: if the lone
dc->unrealize() fails, it still unregisters vmstate, and calls
listeners' unrealize() callback.

bus_set_realized() does not roll back either.  Instead, it stops
unrealizing.

Fortunately, no unrealize method can fail, as we'll see below.

To fix the design error, drop parameter @errp from all the unrealize
methods.

Any unrealize method that uses @errp now needs an update.  This leads
us to unrealize() methods that can fail.  Merely passing it to another
unrealize method cannot cause failure, though.  Here are the ones that
do other things with @errp:

* virtio_serial_device_unrealize()

  Fails when qbus_set_hotplug_handler() fails, but still does all the
  other work.  On failure, the device would stay realized with its
  resources completely gone.  Oops.  Can't happen, because
  qbus_set_hotplug_handler() can't actually fail here.  Pass
  &error_abort to qbus_set_hotplug_handler() instead.

* hw/ppc/spapr_drc.c's unrealize()

  Fails when object_property_del() fails, but all the other work is
  already done.  On failure, the device would stay realized with its
  vmstate registration gone.  Oops.  Can't happen, because
  object_property_del() can't actually fail here.  Pass &error_abort
  to object_property_del() instead.

* spapr_phb_unrealize()

  Fails and bails out when remove_drcs() fails, but other work is
  already done.  On failure, the device would stay realized with some
  of its resources gone.  Oops.  remove_drcs() fails only when
  chassis_from_bus()'s object_property_get_uint() fails, and it can't
  here.  Pass &error_abort to remove_drcs() instead.

Therefore, no unrealize method can fail before this patch.

device_set_realized()'s recursive unrealization via bus uses
object_property_set_bool().  Can't drop @errp there, so pass
&error_abort.

We similarly unrealize with object_property_set_bool() elsewhere,
always ignoring errors.  Pass &error_abort instead.

Several unrealize methods no longer handle errors from other unrealize
methods: virtio_9p_device_unrealize(),
virtio_input_device_unrealize(), scsi_qdev_unrealize(), ...
Much of the deleted error handling looks wrong anyway.

One unrealize methods no longer ignore such errors:
usb_ehci_pci_exit().

Several realize methods no longer ignore errors when rolling back:
v9fs_device_realize_common(), pci_qdev_unrealize(),
spapr_phb_realize(), usb_qdev_realize(), vfio_ccw_realize(),
virtio_device_realize().

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: 7ef1553dac8ef8dbe547b58d7420461a16be0eeb
      
https://github.com/qemu/qemu/commit/7ef1553dac8ef8dbe547b58d7420461a16be0eeb
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: Drop some dead error handling

chassis_from_bus() uses object_property_get_uint() to get property
"chassis_nr" of the bridge device.  Failure would be a programming
error.  Pass &error_abort, and simplify its callers.

Cc: David Gibson <address@hidden>
Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Acked-by: David Gibson <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>


  Commit: df4fe0b291b2baf1694517a4a67be7525102656b
      
https://github.com/qemu/qemu/commit/df4fe0b291b2baf1694517a4a67be7525102656b
  Author: Markus Armbruster <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/core/qdev.c
    M hw/i386/pc_sysfw.c
    M hw/ppc/spapr_drc.c
    M include/qom/object.h
    M qom/object.c
    M qom/object_interfaces.c
    M tests/check-qom-proplist.c

  Log Message:
  -----------
  qom: Drop @errp parameter of object_property_del()

Same story as for object_property_add(): the only way
object_property_del() can fail is when the property with this name
does not exist.  Since our property names are all hardcoded, failure
is a programming error, and the appropriate way to handle it is
passing &error_abort.  Most callers do that, the commit before
previous fixed one that didn't (and got the error handling wrong), and
the two remaining exceptions ignore errors.

Drop the @errp parameter.

Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 96449e4a30a56e3303d6d0407aca130c71671754
      
https://github.com/qemu/qemu/commit/96449e4a30a56e3303d6d0407aca130c71671754
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M target/ppc/mmu_helper.c

  Log Message:
  -----------
  target: Remove unnecessary CPU() cast

The CPU() macro is defined as:

  #define CPU(obj) ((CPUState *)(obj))

which expands to:

  ((CPUState *)object_dynamic_cast_assert((Object *)(obj), (name),
                                          __FILE__, __LINE__, __func__))

This assertion can only fail when @obj points to something other
than its stated type, i.e. when we're in undefined behavior country.

Remove the unnecessary CPU() casts when we already know the pointer
is of CPUState type.

Patch created mechanically using spatch with this script:

  @@
  typedef CPUState;
  CPUState *s;
  @@
  -   CPU(s)
  +   s

Acked-by: David Gibson <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: 688ffbb4f72bf9a75c7ff3a899a9617de61d5fd6
      
https://github.com/qemu/qemu/commit/688ffbb4f72bf9a75c7ff3a899a9617de61d5fd6
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/core/bus.c
    M hw/ide/ahci-allwinner.c
    M hw/ipmi/smbus_ipmi.c
    M hw/microblaze/petalogix_ml605_mmu.c
    M hw/s390x/sclp.c
    M monitor/misc.c
    M qom/object.c

  Log Message:
  -----------
  various: Remove unnecessary OBJECT() cast

The OBJECT() macro is defined as:

  #define OBJECT(obj) ((Object *)(obj))

Remove the unnecessary OBJECT() casts when we already know the
pointer is of Object type.

Patch created mechanically using spatch with this script:

  @@
  typedef Object;
  Object *o;
  @@
  -   OBJECT(o)
  +   o

Acked-by: Cornelia Huck <address@hidden>
Acked-by: Corey Minyard <address@hidden>
Acked-by: John Snow <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
[Trivial rebase conflict in hw/s390x/sclp.c resolved]


  Commit: 8e5c952b370b57beb642826882c80e1b66a9cf12
      
https://github.com/qemu/qemu/commit/8e5c952b370b57beb642826882c80e1b66a9cf12
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M hw/display/artist.c
    M hw/display/cg3.c
    M hw/display/sm501.c
    M hw/display/tcx.c
    M hw/display/vga-isa.c
    M hw/i2c/imx_i2c.c
    M hw/i2c/mpc_i2c.c
    M hw/ide/piix.c
    M hw/misc/macio/pmu.c
    M hw/net/ftgmac100.c
    M hw/net/imx_fec.c
    M hw/nubus/nubus-device.c
    M hw/pci-host/bonito.c
    M hw/ppc/spapr.c
    M hw/sh4/sh_pci.c
    M hw/xen/xen-legacy-backend.c

  Log Message:
  -----------
  hw: Remove unnecessary DEVICE() cast

The DEVICE() macro is defined as:

  #define DEVICE(obj) OBJECT_CHECK(DeviceState, (obj), TYPE_DEVICE)

which expands to:

  ((DeviceState *)object_dynamic_cast_assert((Object *)(obj), (name),
                                             __FILE__, __LINE__,
                                             __func__))

This assertion can only fail when @obj points to something other
than its stated type, i.e. when we're in undefined behavior country.

Remove the unnecessary DEVICE() casts when we already know the
pointer is of DeviceState type.

Patch created mechanically using spatch with this script:

  @@
  typedef DeviceState;
  DeviceState *s;
  @@
  -   DEVICE(s)
  +   s

Acked-by: David Gibson <address@hidden>
Acked-by: Paul Durrant <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Acked-by: John Snow <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>


  Commit: 0db949f1810f4d497762d57d8db6f219c0607529
      
https://github.com/qemu/qemu/commit/0db949f1810f4d497762d57d8db6f219c0607529
  Author: Peter Maydell <address@hidden>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M accel/kvm/kvm-all.c
    M accel/tcg/tcg-all.c
    M authz/list.c
    M authz/listfile.c
    M authz/pamacct.c
    M authz/simple.c
    M backends/cryptodev-vhost-user.c
    M backends/cryptodev.c
    M backends/dbus-vmstate.c
    M backends/hostmem-file.c
    M backends/hostmem-memfd.c
    M backends/hostmem.c
    M backends/rng-egd.c
    M backends/rng-random.c
    M backends/rng.c
    M backends/vhost-user.c
    M block/throttle-groups.c
    M bootdevice.c
    M chardev/char-socket.c
    M chardev/char.c
    M crypto/secret.c
    M crypto/tlscreds.c
    M crypto/tlscredsanon.c
    M crypto/tlscredspsk.c
    M crypto/tlscredsx509.c
    M hw/9pfs/9p.c
    M hw/9pfs/9p.h
    M hw/9pfs/virtio-9p-device.c
    M hw/acpi/ich9.c
    M hw/acpi/pcihp.c
    M hw/acpi/piix4.c
    M hw/arm/allwinner-a10.c
    M hw/arm/allwinner-h3.c
    M hw/arm/armv7m.c
    M hw/arm/aspeed.c
    M hw/arm/aspeed_ast2600.c
    M hw/arm/aspeed_soc.c
    M hw/arm/bcm2835_peripherals.c
    M hw/arm/bcm2836.c
    M hw/arm/cubieboard.c
    M hw/arm/mcimx6ul-evk.c
    M hw/arm/mcimx7d-sabre.c
    M hw/arm/msf2-soc.c
    M hw/arm/nrf51_soc.c
    M hw/arm/orangepi.c
    M hw/arm/raspi.c
    M hw/arm/sabrelite.c
    M hw/arm/sbsa-ref.c
    M hw/arm/vexpress.c
    M hw/arm/virt.c
    M hw/arm/xilinx_zynq.c
    M hw/arm/xlnx-versal-virt.c
    M hw/arm/xlnx-versal.c
    M hw/arm/xlnx-zcu102.c
    M hw/arm/xlnx-zynqmp.c
    M hw/audio/intel-hda.c
    M hw/audio/marvell_88w8618.c
    M hw/audio/pcspk.c
    M hw/block/fdc.c
    M hw/block/nvme.c
    M hw/block/pflash_cfi02.c
    M hw/block/vhost-user-blk.c
    M hw/block/virtio-blk.c
    M hw/block/xen-block.c
    M hw/char/serial-pci-multi.c
    M hw/char/serial-pci.c
    M hw/char/serial.c
    M hw/char/virtio-console.c
    M hw/char/virtio-serial-bus.c
    M hw/core/bus.c
    M hw/core/cpu.c
    M hw/core/generic-loader.c
    M hw/core/machine-qmp-cmds.c
    M hw/core/machine.c
    M hw/core/qdev-clock.c
    M hw/core/qdev-properties.c
    M hw/core/qdev.c
    M hw/cpu/core.c
    M hw/display/artist.c
    M hw/display/bochs-display.c
    M hw/display/cg3.c
    M hw/display/sm501.c
    M hw/display/tcx.c
    M hw/display/vga-isa.c
    M hw/display/vga-pci.c
    M hw/display/vhost-user-gpu-pci.c
    M hw/display/vhost-user-gpu.c
    M hw/display/vhost-user-vga.c
    M hw/display/virtio-gpu-base.c
    M hw/display/xlnx_dp.c
    M hw/dma/rc4030.c
    M hw/dma/sparc32_dma.c
    M hw/dma/xilinx_axidma.c
    M hw/dma/xlnx-zdma.c
    M hw/gpio/aspeed_gpio.c
    M hw/hyperv/hyperv.c
    M hw/i2c/imx_i2c.c
    M hw/i2c/mpc_i2c.c
    M hw/i386/kvm/apic.c
    M hw/i386/microvm.c
    M hw/i386/pc.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/i386/pc_sysfw.c
    M hw/i386/x86.c
    M hw/ide/ahci-allwinner.c
    M hw/ide/macio.c
    M hw/ide/piix.c
    M hw/ide/qdev.c
    M hw/input/vhost-user-input.c
    M hw/input/virtio-input-hid.c
    M hw/input/virtio-input-host.c
    M hw/input/virtio-input.c
    M hw/intc/apic.c
    M hw/intc/apic_common.c
    M hw/intc/ioapic.c
    M hw/intc/s390_flic.c
    M hw/intc/xics.c
    M hw/intc/xive.c
    M hw/ipack/ipack.c
    M hw/ipmi/ipmi.c
    M hw/ipmi/smbus_ipmi.c
    M hw/isa/isa-superio.c
    M hw/isa/lpc_ich9.c
    M hw/mem/nvdimm.c
    M hw/mem/pc-dimm.c
    M hw/microblaze/petalogix_ml605_mmu.c
    M hw/misc/aspeed_sdmc.c
    M hw/misc/edu.c
    M hw/misc/mac_via.c
    M hw/misc/macio/gpio.c
    M hw/misc/macio/macio.c
    M hw/misc/macio/pmu.c
    M hw/misc/pca9552.c
    M hw/misc/tmp105.c
    M hw/misc/tmp421.c
    M hw/net/cadence_gem.c
    M hw/net/can/can_kvaser_pci.c
    M hw/net/can/can_mioe3680_pci.c
    M hw/net/can/can_pcm3680_pci.c
    M hw/net/e1000.c
    M hw/net/e1000e.c
    M hw/net/eepro100.c
    M hw/net/ftgmac100.c
    M hw/net/imx_fec.c
    M hw/net/lance.c
    M hw/net/lasi_i82596.c
    M hw/net/ne2000-isa.c
    M hw/net/ne2000-pci.c
    M hw/net/pcnet-pci.c
    M hw/net/rtl8139.c
    M hw/net/spapr_llan.c
    M hw/net/sungem.c
    M hw/net/sunhme.c
    M hw/net/tulip.c
    M hw/net/virtio-net.c
    M hw/net/vmxnet3.c
    M hw/net/xilinx_axienet.c
    M hw/nios2/10m50_devboard.c
    M hw/nubus/nubus-device.c
    M hw/nvram/fw_cfg.c
    M hw/nvram/mac_nvram.c
    M hw/pci-host/bonito.c
    M hw/pci-host/grackle.c
    M hw/pci-host/i440fx.c
    M hw/pci-host/pnv_phb3_msi.c
    M hw/pci-host/pnv_phb3_pbcq.c
    M hw/pci-host/q35.c
    M hw/pci-host/sabre.c
    M hw/pci-host/uninorth.c
    M hw/pci/pci.c
    M hw/pci/pcie.c
    M hw/pci/shpc.c
    M hw/pcmcia/pxa2xx.c
    M hw/ppc/e500.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/pnv.c
    M hw/ppc/pnv_bmc.c
    M hw/ppc/pnv_core.c
    M hw/ppc/pnv_psi.c
    M hw/ppc/prep.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_drc.c
    M hw/ppc/spapr_iommu.c
    M hw/ppc/spapr_irq.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_rng.c
    M hw/ppc/spapr_rtc.c
    M hw/ppc/spapr_tpm_proxy.c
    M hw/riscv/sifive_u.c
    M hw/riscv/virt.c
    M hw/rtc/mc146818rtc.c
    M hw/s390x/ap-bridge.c
    M hw/s390x/css-bridge.c
    M hw/s390x/event-facility.c
    M hw/s390x/s390-ccw.c
    M hw/s390x/s390-pci-bus.c
    M hw/s390x/s390-skeys.c
    M hw/s390x/s390-stattrib.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/sclp.c
    M hw/s390x/tod.c
    M hw/s390x/virtio-ccw-balloon.c
    M hw/s390x/virtio-ccw-blk.c
    M hw/s390x/virtio-ccw-net.c
    M hw/s390x/virtio-ccw.c
    M hw/s390x/virtio-ccw.h
    M hw/scsi/lsi53c895a.c
    M hw/scsi/scsi-bus.c
    M hw/scsi/scsi-disk.c
    M hw/scsi/vhost-scsi.c
    M hw/scsi/vhost-user-scsi.c
    M hw/scsi/virtio-scsi.c
    M hw/sd/sdhci-internal.h
    M hw/sd/sdhci-pci.c
    M hw/sd/sdhci.c
    M hw/sh4/sh_pci.c
    M hw/sparc/sun4m.c
    M hw/sparc64/sun4u.c
    M hw/ssi/xilinx_spips.c
    M hw/usb/bus.c
    M hw/usb/ccid-card-emulated.c
    M hw/usb/ccid.h
    M hw/usb/dev-audio.c
    M hw/usb/dev-hid.c
    M hw/usb/dev-hub.c
    M hw/usb/dev-network.c
    M hw/usb/dev-smartcard-reader.c
    M hw/usb/dev-storage.c
    M hw/usb/dev-uas.c
    M hw/usb/dev-wacom.c
    M hw/usb/hcd-ehci-pci.c
    M hw/usb/hcd-ehci.c
    M hw/usb/hcd-ehci.h
    M hw/usb/host-libusb.c
    M hw/usb/redirect.c
    M hw/vfio/ap.c
    M hw/vfio/ccw.c
    M hw/vfio/pci-quirks.c
    M hw/vfio/pci.c
    M hw/virtio/vhost-scsi-pci.c
    M hw/virtio/vhost-user-blk-pci.c
    M hw/virtio/vhost-user-fs.c
    M hw/virtio/vhost-user-input-pci.c
    M hw/virtio/vhost-user-scsi-pci.c
    M hw/virtio/vhost-vsock.c
    M hw/virtio/virtio-balloon-pci.c
    M hw/virtio/virtio-balloon.c
    M hw/virtio/virtio-blk-pci.c
    M hw/virtio/virtio-crypto.c
    M hw/virtio/virtio-iommu.c
    M hw/virtio/virtio-net-pci.c
    M hw/virtio/virtio-pmem.c
    M hw/virtio/virtio-rng.c
    M hw/virtio/virtio.c
    M hw/watchdog/wdt_diag288.c
    M hw/xen/xen-bus.c
    M hw/xen/xen-common.c
    M hw/xen/xen-legacy-backend.c
    M include/hw/acpi/ich9.h
    M include/hw/ppc/spapr.h
    M include/hw/qdev-core.h
    M include/hw/s390x/s390-ccw.h
    M include/hw/scsi/scsi.h
    M include/hw/usb.h
    M include/hw/xen/xen-block.h
    M include/hw/xen/xen-bus.h
    M include/qom/object.h
    M include/sysemu/sysemu.h
    M iothread.c
    M memory.c
    M monitor/misc.c
    M monitor/monitor-internal.h
    M net/can/can_host.c
    M net/can/can_socketcan.c
    M net/colo-compare.c
    M net/dump.c
    M net/filter-buffer.c
    M net/filter-mirror.c
    M net/filter-rewriter.c
    M net/filter.c
    M qdev-monitor.c
    M qom/container.c
    M qom/object.c
    M qom/object_interfaces.c
    M scsi/pr-manager-helper.c
    M softmmu/vl.c
    M target/arm/cpu.c
    M target/arm/cpu64.c
    M target/arm/kvm.c
    M target/i386/cpu.c
    M target/i386/sev.c
    M target/ppc/compat.c
    M target/ppc/cpu.h
    M target/ppc/mmu_helper.c
    M target/ppc/translate_init.inc.c
    M target/s390x/cpu.c
    M target/s390x/cpu_features_def.inc.h
    M target/s390x/cpu_models.c
    M tests/check-qom-proplist.c
    M tests/test-qdev-global-props.c
    M ui/console.c
    M ui/input-barrier.c
    M ui/input-linux.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/armbru/tags/pull-qom-2020-05-15' into 
staging

QOM patches for 2020-05-15

# gpg: Signature made Fri 15 May 2020 06:58:29 BST
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Markus Armbruster <address@hidden>" [full]
# gpg:                 aka "Markus Armbruster <address@hidden>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-qom-2020-05-15: (21 commits)
  hw: Remove unnecessary DEVICE() cast
  various: Remove unnecessary OBJECT() cast
  target: Remove unnecessary CPU() cast
  qom: Drop @errp parameter of object_property_del()
  spapr_pci: Drop some dead error handling
  qdev: Unrealize must not fail
  Drop more @errp parameters after previous commit
  qom: Drop parameter @errp of object_property_add() & friends
  qdev: Clean up qdev_connect_gpio_out_named()
  hw/arm/bcm2835: Drop futile attempts at QOM-adopting memory
  e1000: Don't run e1000_instance_init() twice
  hw/isa/superio: Make the components QOM children
  s390x/cpumodel: Fix UI to CPU features pcc-cmac-{aes,eaes}-256
  tests/check-qom-proplist: Improve iterator coverage
  qom: Drop object_property_set_description() parameter @errp
  qom: Make all the object_property_add_FOO() return the property
  qom: Drop convenience method object_property_get_uint16List()
  qom: Simplify object_property_get_enum()
  qom: Drop object_property_del_child()'s unused parameter @errp
  qom: Clean up inconsistent use of gchar * vs. char *
  ...

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/013a18edbbc5...0db949f1810f



reply via email to

[Prev in Thread] Current Thread [Next in Thread]