All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 00/15] Error API: Flag errors in *errp even if errors are being ignored
@ 2017-06-13 16:52 Eduardo Habkost
  2017-06-13 16:52 ` [Qemu-devel] [RFC 01/15] tests: Test cases for error API Eduardo Habkost
                   ` (16 more replies)
  0 siblings, 17 replies; 41+ messages in thread
From: Eduardo Habkost @ 2017-06-13 16:52 UTC (permalink / raw)
  To: qemu-devel; +Cc: Markus Armbruster, Michael Roth

Rationale
---------

I'm often bothered by the fact that we can't write the following:

    foo(arg, errp);
    if (*errp) {
        handle the error...
        error_propagate(errp, err);
    }

because errp can be NULL.

I understand the reason we need to support errp==NULL, as it
makes life simpler for callers that don't want any extra error
information.  However, this has the cost of making the functions
that report errors more complex and error-prone.

(Evidence of that: the 34 ERR_IS_* cases handled by the "use
ERR_IS_* macros" patches in the series.  Where existing code will
crash or behave differently if errp is NULL.)

I considered suggesting forbidding NULL errp, and just changing
all callers that use NULL to have an err variable and call
error_free(), but this would mean changing 690 function callers
that pass NULL errp as argument.

Here I'm proposing a mechanism to have the best of both worlds:
allow callers to ignore errors easily while allowing functions to
propagate errors without an intermediate local_err variable.

The Proposal
------------

I'm proposing replacing NULL errp with a special macro:
IGNORE_ERRORS.  The macro will trigger special behavior in the
error API that will make it not save any error information in the
error pointer, but still keep track of boolean error state in
*errp.

This will allow us to simplify the documented method to propagate errors
from:

    Error *err = NULL;
    foo(arg, &err);
    if (err) {
        handle the error...
        error_propagate(errp, err);
    }

to:

    foo(arg, errp);
    if (ERR_IS_SET(errp)) {
        handle the error...
    }

This will allow us to stop using local_err variables and
error_propagate() on hundreds of cases.

Implementation
--------------

This replaces NULL errp arguments on function calls with a
IGNORE_ERRORS macro.  Checks for (!errp) are replaced by
ERR_IS_IGNORED(errp).  Checks for (*errp) are replaced by
ERR_IS_SET(errp).  No extra changes are required on function
callers.

Then IGNORE_ERRORS is implemend as:

  (& { &ignored_error_unset })

When error_set() is called and IGNORE_ERRORS was used, we set
error state using:

  *errp = &ignored_error_set;

This way, we can make ERR_IS_SET work even if errp was
IGNORE_ERRORS.  The ERR_IS_* macros are reimplemented as:

  #define ERR_IS_SET(e) (*(e) && *(e) != &ignored_error_unset)
  #define ERR_IS_IGNORED(e) (!(e) || *(e) == &ignored_error_unset || *(e) == &ignored_error_set)

Ensuring errp is never NULL
---------------------------

The last patch on this series changes the (Error **errp)
parameters in functions to (Error *errp[static 1]), just to help
validate the existing code, as clang warns about NULL arguments
on that case.  I don't think we should apply that patch, though,
because the "[static 1]" syntax confuses Coccinelle.

I have a branch where I experimented with the idea of replacing
(Error **errp) parameters with an opaque type (void*, or a struct
type).  I gave up when I noticed it would require touching all
callers to replace &err with a wrapper macro to convert to the
right type.  Suggestions to make NULL errp easier to detect at
build time are welcome.

(Probably the easiest solution for that is to add assert(errp)
lines to the ERR_IS_*() macros.)

Desirable side-effects
----------------------

Some of additional benefits from parts of this series:

* Making code that ignore error information more visible and
  greppable (using IGNORE_ERRORS).  I believe many of those cases
  are actually bugs and should use &error_abort or &error_fatal
  instead.

* Making code that depends on errp more visible and
  greppable (using ERR_IS_* macros).  Some of those cases are
  also likely to be bugs, and need to be investigated.

TODO
----

* Simplify more cases of local_error/error_propagate() to use
  errp directly.
* Update API documentation and code examples.
* Add a mechanism to ensure errp is never NULL.

Git branch
----------

This series depend on a few extra cleanups that I didn't submit
to qemu-devel yet.  A git branch including this series is
available at:

  git://github.com/ehabkost/qemu-hacks.git work/err-api-rework-ignore-ptr-v1

Eduardo Habkost (15):
  tests: Test cases for error API
  error: New IGNORE_ERRORS macro
  Add qapi/error.h includes on files that will need it
  [coccinelle] Use IGNORE_ERRORS instead of NULL as errp argument
  qapi: Use IGNORE_ERRORS instead of NULL on generated code
  test-qapi-util: Use IGNORE_ERRORS instead of NULL
  Manual changes to use IGNORE_ERRORS instead of NULL
  error: New ERR_IS_* macros for checking Error** values
  [coccinelle] Use ERR_IS_* macros
  test-qapi-util: Use ERR_IS_* macros
  Manual changes to use ERR_IS_* macros
  error: Make IGNORED_ERRORS not a NULL pointer
  rdma: Simplify var declaration to avoid confusing Coccinelle
  [coccinelle] Eliminate unnecessary local_err/error_propagate() usage
  [test only] Use 'Error *err[static 1]' instead of 'Error **errp' to
    catch NULL errp arguments

 include/qapi/visitor.h                  |  47 ++++---
 scripts/qapi-commands.py                |   6 +-
 scripts/qapi-types.py                   |   3 +-
 block/nbd-client.h                      |   2 +-
 block/qcow2.h                           |   8 +-
 block/vhdx.h                            |   2 +-
 crypto/blockpriv.h                      |   4 +-
 crypto/hmac.h                           |  10 +-
 crypto/tlscredspriv.h                   |   4 +-
 hw/9pfs/9p.h                            |   4 +-
 hw/block/dataplane/virtio-blk.h         |   2 +-
 hw/s390x/s390-virtio.h                  |   2 +-
 hw/timer/m48t59-internal.h              |   2 +-
 hw/usb/hcd-ehci.h                       |   4 +-
 hw/vfio/pci.h                           |   4 +-
 hw/xen/xen-host-pci-device.h            |   2 +-
 hw/xen/xen_pt.h                         |   4 +-
 include/block/aio.h                     |   4 +-
 include/block/block.h                   |  69 ++++++----
 include/block/block_backup.h            |   2 +-
 include/block/block_int.h               |  19 +--
 include/block/blockjob.h                |  11 +-
 include/block/blockjob_int.h            |   3 +-
 include/block/dirty-bitmap.h            |   8 +-
 include/block/nbd.h                     |  13 +-
 include/block/qapi.h                    |   7 +-
 include/block/snapshot.h                |  12 +-
 include/chardev/char-fd.h               |   2 +-
 include/chardev/char-fe.h               |   4 +-
 include/chardev/char-win.h              |   3 +-
 include/chardev/char.h                  |   9 +-
 include/crypto/afsplit.h                |   4 +-
 include/crypto/block.h                  |  10 +-
 include/crypto/cipher.h                 |   8 +-
 include/crypto/hash.h                   |  12 +-
 include/crypto/init.h                   |   2 +-
 include/crypto/ivgen.h                  |   2 +-
 include/crypto/pbkdf.h                  |   4 +-
 include/crypto/random.h                 |   4 +-
 include/crypto/secret.h                 |   6 +-
 include/crypto/tlssession.h             |   6 +-
 include/exec/memory.h                   |  12 +-
 include/exec/ram_addr.h                 |  12 +-
 include/hw/acpi/acpi.h                  |   4 +-
 include/hw/acpi/cpu.h                   |   7 +-
 include/hw/acpi/cpu_hotplug.h           |   3 +-
 include/hw/acpi/ich9.h                  |   9 +-
 include/hw/acpi/memory_hotplug.h        |   6 +-
 include/hw/acpi/pcihp.h                 |   4 +-
 include/hw/audio/pcspk.h                |   3 +-
 include/hw/block/block.h                |   4 +-
 include/hw/boards.h                     |   2 +-
 include/hw/char/serial.h                |   2 +-
 include/hw/hotplug.h                    |   8 +-
 include/hw/i386/pc.h                    |   2 +-
 include/hw/isa/isa.h                    |   6 +-
 include/hw/loader.h                     |   3 +-
 include/hw/mem/pc-dimm.h                |  10 +-
 include/hw/nmi.h                        |   2 +-
 include/hw/pci/msi.h                    |   2 +-
 include/hw/pci/msix.h                   |   4 +-
 include/hw/pci/pci.h                    |   2 +-
 include/hw/pci/pcie.h                   |   5 +-
 include/hw/pci/pcie_aer.h               |   2 +-
 include/hw/pci/shpc.h                   |   5 +-
 include/hw/ppc/pnv_xscom.h              |   2 +-
 include/hw/ppc/xics.h                   |   7 +-
 include/hw/qdev-core.h                  |   8 +-
 include/hw/qdev-properties.h            |  10 +-
 include/hw/s390x/css.h                  |   4 +-
 include/hw/scsi/scsi.h                  |   3 +-
 include/hw/smbios/smbios.h              |   2 +-
 include/hw/usb.h                        |   8 +-
 include/hw/vfio/vfio-common.h           |   5 +-
 include/hw/virtio/vhost-scsi-common.h   |   2 +-
 include/hw/virtio/virtio-bus.h          |   2 +-
 include/hw/virtio/virtio-scsi.h         |   6 +-
 include/hw/xen/xen.h                    |   2 +-
 include/io/channel-command.h            |   2 +-
 include/io/channel-file.h               |   2 +-
 include/io/channel-socket.h             |  14 +-
 include/io/channel-tls.h                |   4 +-
 include/io/channel-util.h               |   2 +-
 include/io/channel.h                    |  20 +--
 include/io/dns-resolver.h               |   2 +-
 include/io/task.h                       |   2 +-
 include/migration/blocker.h             |   2 +-
 include/migration/failover.h            |   2 +-
 include/migration/migration.h           |   4 +-
 include/migration/snapshot.h            |   4 +-
 include/migration/vmstate.h             |   5 +-
 include/monitor/monitor.h               |   6 +-
 include/monitor/qdev.h                  |   4 +-
 include/net/net.h                       |   6 +-
 include/qapi/error.h                    |  23 +++-
 include/qapi/qmp/json-parser.h          |   3 +-
 include/qapi/qmp/qdict.h                |   2 +-
 include/qapi/qmp/qjson.h                |   5 +-
 include/qapi/qobject-input-visitor.h    |   2 +-
 include/qapi/util.h                     |   2 +-
 include/qemu/base64.h                   |   2 +-
 include/qemu/config-file.h              |   4 +-
 include/qemu/log.h                      |   4 +-
 include/qemu/main-loop.h                |   2 +-
 include/qemu/option.h                   |  30 ++--
 include/qemu/sockets.h                  |  33 +++--
 include/qemu/throttle.h                 |   2 +-
 include/qom/cpu.h                       |   4 +-
 include/qom/object.h                    |  89 ++++++------
 include/qom/object_interfaces.h         |  12 +-
 include/qom/qom-qobject.h               |   4 +-
 include/sysemu/arch_init.h              |   8 +-
 include/sysemu/block-backend.h          |  19 +--
 include/sysemu/cpus.h                   |   4 +-
 include/sysemu/cryptodev.h              |   8 +-
 include/sysemu/device_tree.h            |   6 +-
 include/sysemu/hostmem.h                |   2 +-
 include/sysemu/memory_mapping.h         |   2 +-
 include/sysemu/numa.h                   |   5 +-
 include/sysemu/qtest.h                  |   3 +-
 include/sysemu/sysemu.h                 |  10 +-
 include/sysemu/tpm_backend.h            |   2 +-
 include/ui/console.h                    |  14 +-
 include/ui/input.h                      |   2 +-
 include/ui/qemu-spice.h                 |   2 +-
 migration/block.h                       |   2 +-
 migration/exec.h                        |   5 +-
 migration/fd.h                          |   4 +-
 migration/rdma.h                        |   5 +-
 migration/savevm.h                      |   2 +-
 migration/socket.h                      |   9 +-
 migration/tls.h                         |   4 +-
 nbd/nbd-internal.h                      |   6 +-
 net/clients.h                           |  20 +--
 net/tap_int.h                           |   5 +-
 qga/guest-agent-core.h                  |   4 +-
 qga/vss-win32.h                         |   2 +-
 replication.h                           |   8 +-
 target/i386/cpu.h                       |   2 +-
 target/ppc/cpu.h                        |   5 +-
 target/s390x/cpu.h                      |  10 +-
 target/s390x/cpu_models.h               |   9 +-
 qapi/qapi-visit-core.c                  |  64 +++++----
 arch_init.c                             |   2 +-
 backends/cryptodev-builtin.c            |  15 +-
 backends/cryptodev.c                    |  24 ++--
 backends/hostmem-file.c                 |  11 +-
 backends/hostmem-ram.c                  |   2 +-
 backends/hostmem.c                      |  45 +++---
 backends/rng-egd.c                      |   9 +-
 backends/rng-random.c                   |   8 +-
 backends/rng.c                          |  15 +-
 backends/tpm.c                          |  15 +-
 balloon.c                               |   6 +-
 block.c                                 | 150 ++++++++++----------
 block/backup.c                          |  13 +-
 block/blkdebug.c                        |  33 +++--
 block/blkreplay.c                       |   2 +-
 block/blkverify.c                       |   4 +-
 block/block-backend.c                   |  31 +++--
 block/bochs.c                           |   4 +-
 block/cloop.c                           |   4 +-
 block/commit.c                          |  35 +++--
 block/crypto.c                          |  32 ++---
 block/curl.c                            |  10 +-
 block/dirty-bitmap.c                    |   9 +-
 block/dmg.c                             |   6 +-
 block/file-posix.c                      |  52 +++----
 block/file-win32.c                      |  18 +--
 block/gluster.c                         |  23 ++--
 block/io.c                              |  13 +-
 block/iscsi.c                           |  58 ++++----
 block/mirror.c                          |  30 ++--
 block/nbd-client.c                      |  12 +-
 block/nbd.c                             |  36 +++--
 block/nfs.c                             |  37 ++---
 block/null.c                            |   4 +-
 block/parallels.c                       |  12 +-
 block/qapi.c                            |  19 ++-
 block/qcow.c                            |  15 +-
 block/qcow2-cluster.c                   |   2 +-
 block/qcow2-refcount.c                  |   8 +-
 block/qcow2-snapshot.c                  |   4 +-
 block/qcow2.c                           |  44 +++---
 block/qed.c                             |  21 +--
 block/quorum.c                          |  11 +-
 block/raw-format.c                      |  20 +--
 block/rbd.c                             |  29 ++--
 block/replication.c                     |  46 +++----
 block/sheepdog.c                        |  65 ++++-----
 block/snapshot.c                        |  14 +-
 block/ssh.c                             |  43 +++---
 block/stream.c                          |  10 +-
 block/vdi.c                             |   7 +-
 block/vhdx-log.c                        |   4 +-
 block/vhdx.c                            |  13 +-
 block/vmdk.c                            |  33 +++--
 block/vpc.c                             |  11 +-
 block/vvfat.c                           |  12 +-
 block/vxhs.c                            |   6 +-
 block/write-threshold.c                 |   2 +-
 blockdev-nbd.c                          |  13 +-
 blockdev.c                              | 184 ++++++++++++-------------
 blockjob.c                              |  35 +++--
 bootdevice.c                            |  27 ++--
 bsd-user/elfload.c                      |   4 +-
 chardev/baum.c                          |   2 +-
 chardev/char-console.c                  |   2 +-
 chardev/char-fd.c                       |   4 +-
 chardev/char-fe.c                       |   4 +-
 chardev/char-file.c                     |   4 +-
 chardev/char-io.c                       |   3 +-
 chardev/char-mux.c                      |   4 +-
 chardev/char-null.c                     |   2 +-
 chardev/char-parallel.c                 |   8 +-
 chardev/char-pipe.c                     |   8 +-
 chardev/char-pty.c                      |   4 +-
 chardev/char-ringbuf.c                  |   8 +-
 chardev/char-serial.c                   |   6 +-
 chardev/char-socket.c                   |  30 ++--
 chardev/char-stdio.c                    |   4 +-
 chardev/char-udp.c                      |   8 +-
 chardev/char-win-stdio.c                |   2 +-
 chardev/char-win.c                      |   3 +-
 chardev/char.c                          |  25 ++--
 chardev/msmouse.c                       |   2 +-
 chardev/spice.c                         |   8 +-
 chardev/wctablet.c                      |   2 +-
 cpus.c                                  |  12 +-
 crypto/afsplit.c                        |   6 +-
 crypto/block-luks.c                     |  22 +--
 crypto/block-qcow.c                     |  10 +-
 crypto/block.c                          |  14 +-
 crypto/cipher-builtin.c                 |  24 ++--
 crypto/cipher-gcrypt.c                  |   8 +-
 crypto/cipher-nettle.c                  |   8 +-
 crypto/cipher.c                         |   2 +-
 crypto/hash-gcrypt.c                    |   2 +-
 crypto/hash-glib.c                      |   2 +-
 crypto/hash-nettle.c                    |   2 +-
 crypto/hash.c                           |  10 +-
 crypto/hmac-gcrypt.c                    |   4 +-
 crypto/hmac-glib.c                      |   8 +-
 crypto/hmac-nettle.c                    |   4 +-
 crypto/hmac.c                           |   6 +-
 crypto/init.c                           |   2 +-
 crypto/ivgen-essiv.c                    |   4 +-
 crypto/ivgen-plain.c                    |   4 +-
 crypto/ivgen-plain64.c                  |   4 +-
 crypto/ivgen.c                          |   4 +-
 crypto/pbkdf-gcrypt.c                   |   2 +-
 crypto/pbkdf-nettle.c                   |   2 +-
 crypto/pbkdf-stub.c                     |   2 +-
 crypto/pbkdf.c                          |   4 +-
 crypto/random-gcrypt.c                  |   4 +-
 crypto/random-gnutls.c                  |   4 +-
 crypto/random-platform.c                |   4 +-
 crypto/secret.c                         |  50 +++----
 crypto/tlscreds.c                       |  28 ++--
 crypto/tlscredsanon.c                   |  14 +-
 crypto/tlscredsx509.c                   |  44 +++---
 crypto/tlssession.c                     |  18 +--
 device_tree.c                           |   8 +-
 dump.c                                  | 207 ++++++++++------------------
 exec.c                                  |  40 +++---
 fsdev/qemu-fsdev-throttle.c             |   3 +-
 gdbstub.c                               |   2 +-
 hmp.c                                   |  68 ++++-----
 hw/9pfs/9p.c                            |   4 +-
 hw/9pfs/virtio-9p-device.c              |   7 +-
 hw/9pfs/xen-9p-backend.c                |  12 +-
 hw/acpi/acpi-stub.c                     |   2 +-
 hw/acpi/core.c                          |   6 +-
 hw/acpi/cpu.c                           |   9 +-
 hw/acpi/cpu_hotplug.c                   |   7 +-
 hw/acpi/ich9.c                          |  51 +++----
 hw/acpi/memory_hotplug.c                |  19 +--
 hw/acpi/nvdimm.c                        |  17 +--
 hw/acpi/pcihp.c                         |   4 +-
 hw/acpi/piix4.c                         |  28 ++--
 hw/acpi/vmgenid.c                       |  12 +-
 hw/arm/allwinner-a10.c                  |  30 ++--
 hw/arm/armv7m.c                         |  30 ++--
 hw/arm/aspeed.c                         |   4 +-
 hw/arm/aspeed_soc.c                     |  25 ++--
 hw/arm/bcm2835_peripherals.c            |  33 +++--
 hw/arm/bcm2836.c                        |   5 +-
 hw/arm/digic.c                          |  30 ++--
 hw/arm/exynos4210.c                     |   2 +-
 hw/arm/fsl-imx25.c                      |  63 ++++-----
 hw/arm/fsl-imx31.c                      |  58 ++++----
 hw/arm/fsl-imx6.c                       | 110 +++++++--------
 hw/arm/highbank.c                       |   2 +-
 hw/arm/integratorcp.c                   |   4 +-
 hw/arm/musicpal.c                       |   4 +-
 hw/arm/pxa2xx.c                         |   2 +-
 hw/arm/pxa2xx_gpio.c                    |   2 +-
 hw/arm/realview.c                       |   2 +-
 hw/arm/spitz.c                          |   4 +-
 hw/arm/stm32f205_soc.c                  |   2 +-
 hw/arm/strongarm.c                      |   2 +-
 hw/arm/tosa.c                           |   2 +-
 hw/arm/versatilepb.c                    |   2 +-
 hw/arm/vexpress.c                       |  13 +-
 hw/arm/virt.c                           |  62 +++++----
 hw/arm/xilinx_zynq.c                    |   2 +-
 hw/arm/xlnx-zynqmp.c                    |  14 +-
 hw/arm/z2.c                             |   2 +-
 hw/audio/ac97.c                         |   2 +-
 hw/audio/adlib.c                        |   2 +-
 hw/audio/cs4231a.c                      |   2 +-
 hw/audio/es1370.c                       |   2 +-
 hw/audio/gus.c                          |   2 +-
 hw/audio/intel-hda.c                    |   6 +-
 hw/audio/marvell_88w8618.c              |   2 +-
 hw/audio/milkymist-ac97.c               |   2 +-
 hw/audio/pcspk.c                        |   2 +-
 hw/audio/pl041.c                        |   2 +-
 hw/audio/sb16.c                         |   2 +-
 hw/block/block.c                        |   4 +-
 hw/block/dataplane/virtio-blk.c         |   2 +-
 hw/block/fdc.c                          |  37 ++---
 hw/block/m25p80.c                       |   2 +-
 hw/block/nand.c                         |   2 +-
 hw/block/nvme.c                         |   2 +-
 hw/block/pflash_cfi01.c                 |   8 +-
 hw/block/pflash_cfi02.c                 |   8 +-
 hw/block/virtio-blk.c                   |  27 ++--
 hw/bt/hci-csr.c                         |   2 +-
 hw/char/bcm2835_aux.c                   |   2 +-
 hw/char/cadence_uart.c                  |   2 +-
 hw/char/debugcon.c                      |  10 +-
 hw/char/digic-uart.c                    |   2 +-
 hw/char/escc.c                          |   2 +-
 hw/char/etraxfs_ser.c                   |   2 +-
 hw/char/exynos4210_uart.c               |   2 +-
 hw/char/imx_serial.c                    |   2 +-
 hw/char/ipoctal232.c                    |   2 +-
 hw/char/lm32_juart.c                    |   2 +-
 hw/char/lm32_uart.c                     |   2 +-
 hw/char/mcf_uart.c                      |   2 +-
 hw/char/milkymist-uart.c                |   2 +-
 hw/char/parallel.c                      |   2 +-
 hw/char/pl011.c                         |   2 +-
 hw/char/serial-isa.c                    |   2 +-
 hw/char/serial-pci.c                    |  16 +--
 hw/char/serial.c                        |   2 +-
 hw/char/spapr_vty.c                     |   2 +-
 hw/char/stm32f2xx_usart.c               |   2 +-
 hw/char/terminal3270.c                  |   2 +-
 hw/char/virtio-console.c                |   4 +-
 hw/char/virtio-serial-bus.c             |  22 +--
 hw/char/xilinx_uartlite.c               |   2 +-
 hw/core/bus.c                           |  19 +--
 hw/core/generic-loader.c                |   4 +-
 hw/core/hotplug.c                       |   8 +-
 hw/core/loader.c                        |   3 +-
 hw/core/machine.c                       |  99 +++++++------
 hw/core/nmi.c                           |   2 +-
 hw/core/or-irq.c                        |   2 +-
 hw/core/platform-bus.c                  |   8 +-
 hw/core/qdev-properties-system.c        |  52 +++----
 hw/core/qdev-properties.c               | 112 +++++++--------
 hw/core/qdev.c                          |  61 ++++----
 hw/core/sysbus.c                        |   6 +-
 hw/cpu/a15mpcore.c                      |  10 +-
 hw/cpu/a9mpcore.c                       |  30 ++--
 hw/cpu/arm11mpcore.c                    |  23 ++--
 hw/cpu/core.c                           |  24 ++--
 hw/cpu/realview_mpcore.c                |  13 +-
 hw/display/ads7846.c                    |   2 +-
 hw/display/bcm2835_fb.c                 |   2 +-
 hw/display/cg3.c                        |   2 +-
 hw/display/cirrus_vga.c                 |   4 +-
 hw/display/exynos4210_fimd.c            |   2 +-
 hw/display/jazz_led.c                   |   2 +-
 hw/display/milkymist-tmu2.c             |   2 +-
 hw/display/milkymist-vgafb.c            |   2 +-
 hw/display/pl110.c                      |   2 +-
 hw/display/qxl.c                        |  12 +-
 hw/display/sm501.c                      |   4 +-
 hw/display/ssd0323.c                    |   2 +-
 hw/display/tcx.c                        |   2 +-
 hw/display/vga-isa.c                    |   2 +-
 hw/display/vga-pci.c                    |  16 ++-
 hw/display/virtio-gpu-pci.c             |   3 +-
 hw/display/virtio-gpu.c                 |  14 +-
 hw/display/virtio-vga.c                 |   9 +-
 hw/display/vmware_vga.c                 |   2 +-
 hw/display/xlnx_dp.c                    |   4 +-
 hw/dma/bcm2835_dma.c                    |   2 +-
 hw/dma/i82374.c                         |   2 +-
 hw/dma/i8257.c                          |   2 +-
 hw/dma/pl330.c                          |   2 +-
 hw/dma/pxa2xx_dma.c                     |   2 +-
 hw/dma/rc4030.c                         |   4 +-
 hw/dma/sparc32_dma.c                    |   2 +-
 hw/dma/xilinx_axidma.c                  |   2 +-
 hw/gpio/bcm2835_gpio.c                  |   2 +-
 hw/gpio/gpio_key.c                      |   2 +-
 hw/gpio/imx_gpio.c                      |   2 +-
 hw/gpio/omap_gpio.c                     |   4 +-
 hw/i2c/aspeed_i2c.c                     |   2 +-
 hw/i2c/imx_i2c.c                        |   2 +-
 hw/i2c/omap_i2c.c                       |   2 +-
 hw/i2c/smbus_ich9.c                     |   2 +-
 hw/i386/acpi-build.c                    |  51 ++++---
 hw/i386/amd_iommu.c                     |   2 +-
 hw/i386/intel_iommu.c                   |   4 +-
 hw/i386/kvm/apic.c                      |   4 +-
 hw/i386/kvm/clock.c                     |   2 +-
 hw/i386/kvm/i8254.c                     |   2 +-
 hw/i386/kvm/i8259.c                     |   2 +-
 hw/i386/kvm/ioapic.c                    |   2 +-
 hw/i386/kvm/pci-assign.c                |  29 ++--
 hw/i386/kvmvapic.c                      |   2 +-
 hw/i386/pc.c                            |  84 ++++++-----
 hw/i386/pc_q35.c                        |  16 ++-
 hw/i386/x86-iommu.c                     |   2 +-
 hw/i386/xen/xen-hvm.c                   |   4 +-
 hw/i386/xen/xen_apic.c                  |   2 +-
 hw/i386/xen/xen_platform.c              |   2 +-
 hw/i386/xen/xen_pvdevice.c              |   2 +-
 hw/ide/ahci.c                           |   2 +-
 hw/ide/cmd646.c                         |   2 +-
 hw/ide/core.c                           |   2 +-
 hw/ide/ich.c                            |   5 +-
 hw/ide/isa.c                            |   2 +-
 hw/ide/macio.c                          |   2 +-
 hw/ide/microdrive.c                     |   2 +-
 hw/ide/mmio.c                           |   2 +-
 hw/ide/piix.c                           |   2 +-
 hw/ide/qdev.c                           |  12 +-
 hw/ide/via.c                            |   2 +-
 hw/input/adb.c                          |   6 +-
 hw/input/pckbd.c                        |   2 +-
 hw/input/virtio-input-hid.c             |   9 +-
 hw/input/virtio-input-host.c            |   5 +-
 hw/input/virtio-input.c                 |  20 ++-
 hw/input/vmmouse.c                      |   2 +-
 hw/intc/apic.c                          |   4 +-
 hw/intc/apic_common.c                   |  18 ++-
 hw/intc/arm_gic.c                       |   8 +-
 hw/intc/arm_gic_common.c                |   2 +-
 hw/intc/arm_gic_kvm.c                   |  13 +-
 hw/intc/arm_gicv2m.c                    |   2 +-
 hw/intc/arm_gicv3.c                     |   8 +-
 hw/intc/arm_gicv3_common.c              |   5 +-
 hw/intc/arm_gicv3_its_kvm.c             |   8 +-
 hw/intc/arm_gicv3_kvm.c                 |  13 +-
 hw/intc/armv7m_nvic.c                   |   8 +-
 hw/intc/aspeed_vic.c                    |   2 +-
 hw/intc/exynos4210_gic.c                |   3 +-
 hw/intc/grlib_irqmp.c                   |   2 +-
 hw/intc/i8259.c                         |   2 +-
 hw/intc/i8259_common.c                  |   2 +-
 hw/intc/ioapic.c                        |   2 +-
 hw/intc/ioapic_common.c                 |   2 +-
 hw/intc/mips_gic.c                      |   2 +-
 hw/intc/nios2_iic.c                     |   2 +-
 hw/intc/omap_intc.c                     |   4 +-
 hw/intc/openpic.c                       |   2 +-
 hw/intc/openpic_kvm.c                   |   2 +-
 hw/intc/realview_gic.c                  |   8 +-
 hw/intc/s390_flic.c                     |   4 +-
 hw/intc/s390_flic_kvm.c                 |   5 +-
 hw/intc/xics.c                          |   8 +-
 hw/intc/xics_kvm.c                      |   8 +-
 hw/intc/xics_pnv.c                      |   2 +-
 hw/intc/xics_spapr.c                    |   5 +-
 hw/ipack/ipack.c                        |   8 +-
 hw/ipack/tpci200.c                      |   2 +-
 hw/ipmi/ipmi.c                          |   5 +-
 hw/ipmi/ipmi_bmc_extern.c               |   2 +-
 hw/ipmi/ipmi_bmc_sim.c                  |   2 +-
 hw/ipmi/isa_ipmi_bt.c                   |   6 +-
 hw/ipmi/isa_ipmi_kcs.c                  |   4 +-
 hw/isa/i82378.c                         |   2 +-
 hw/isa/isa-bus.c                        |   2 +-
 hw/isa/lpc_ich9.c                       |  13 +-
 hw/isa/pc87312.c                        |   2 +-
 hw/isa/piix4.c                          |   2 +-
 hw/isa/vt82c686.c                       |   8 +-
 hw/mem/nvdimm.c                         |   8 +-
 hw/mem/pc-dimm.c                        |  24 ++--
 hw/microblaze/petalogix_ml605_mmu.c     |  14 +-
 hw/mips/boston.c                        |   2 +-
 hw/mips/cps.c                           |   2 +-
 hw/mips/gt64xxx_pci.c                   |   2 +-
 hw/mips/mips_malta.c                    |   3 +-
 hw/misc/applesmc.c                      |   2 +-
 hw/misc/arm11scu.c                      |   2 +-
 hw/misc/arm_sysctl.c                    |   2 +-
 hw/misc/aspeed_scu.c                    |   2 +-
 hw/misc/aspeed_sdmc.c                   |   2 +-
 hw/misc/auxbus.c                        |   3 +-
 hw/misc/bcm2835_mbox.c                  |   2 +-
 hw/misc/bcm2835_property.c              |   2 +-
 hw/misc/debugexit.c                     |   2 +-
 hw/misc/eccmemctl.c                     |   2 +-
 hw/misc/edu.c                           |   7 +-
 hw/misc/hyperv_testdev.c                |   2 +-
 hw/misc/imx6_src.c                      |   2 +-
 hw/misc/ivshmem.c                       |  49 ++++---
 hw/misc/macio/cuda.c                    |   2 +-
 hw/misc/macio/macio.c                   |  45 +++---
 hw/misc/max111x.c                       |   4 +-
 hw/misc/mips_cmgcr.c                    |   2 +-
 hw/misc/mips_cpc.c                      |   2 +-
 hw/misc/mips_itu.c                      |   2 +-
 hw/misc/pc-testdev.c                    |   2 +-
 hw/misc/pci-testdev.c                   |   2 +-
 hw/misc/pvpanic.c                       |   5 +-
 hw/misc/sga.c                           |   2 +-
 hw/misc/tmp105.c                        |  12 +-
 hw/misc/unimp.c                         |   2 +-
 hw/misc/vmport.c                        |   2 +-
 hw/net/allwinner_emac.c                 |   2 +-
 hw/net/cadence_gem.c                    |   2 +-
 hw/net/dp8393x.c                        |   8 +-
 hw/net/e1000.c                          |   5 +-
 hw/net/e1000e.c                         |  11 +-
 hw/net/eepro100.c                       |   5 +-
 hw/net/fsl_etsec/etsec.c                |   2 +-
 hw/net/ftgmac100.c                      |   2 +-
 hw/net/imx_fec.c                        |   2 +-
 hw/net/lance.c                          |   3 +-
 hw/net/mcf_fec.c                        |   2 +-
 hw/net/ne2000-isa.c                     |  10 +-
 hw/net/ne2000.c                         |   5 +-
 hw/net/pcnet-pci.c                      |   5 +-
 hw/net/rocker/qmp-norocker.c            |   9 +-
 hw/net/rocker/rocker.c                  |   5 +-
 hw/net/rocker/rocker_of_dpa.c           |   2 +-
 hw/net/rtl8139.c                        |   5 +-
 hw/net/spapr_llan.c                     |   5 +-
 hw/net/virtio-net.c                     |  10 +-
 hw/net/vmxnet3.c                        |  11 +-
 hw/net/xilinx_axienet.c                 |   2 +-
 hw/net/xilinx_ethlite.c                 |   2 +-
 hw/nvram/fw_cfg.c                       |  21 ++-
 hw/nvram/mac_nvram.c                    |   4 +-
 hw/nvram/spapr_nvram.c                  |   2 +-
 hw/pci-bridge/dec.c                     |   4 +-
 hw/pci-bridge/gen_pcie_root_port.c      |   2 +-
 hw/pci-bridge/ioh3420.c                 |   2 +-
 hw/pci-bridge/pci_bridge_dev.c          |   4 +-
 hw/pci-bridge/pci_expander_bridge.c     |  16 +--
 hw/pci-bridge/pcie_root_port.c          |   2 +-
 hw/pci-host/apb.c                       |   4 +-
 hw/pci-host/bonito.c                    |   2 +-
 hw/pci-host/gpex.c                      |   5 +-
 hw/pci-host/grackle.c                   |   2 +-
 hw/pci-host/piix.c                      |  28 ++--
 hw/pci-host/ppce500.c                   |   2 +-
 hw/pci-host/prep.c                      |   6 +-
 hw/pci-host/q35.c                       |  39 +++---
 hw/pci-host/uninorth.c                  |   9 +-
 hw/pci-host/versatile.c                 |   4 +-
 hw/pci-host/xilinx-pcie.c               |   7 +-
 hw/pci/msi.c                            |   2 +-
 hw/pci/msix.c                           |   4 +-
 hw/pci/pci-stub.c                       |   2 +-
 hw/pci/pci.c                            |  44 +++---
 hw/pci/pcie.c                           |  10 +-
 hw/pci/pcie_aer.c                       |   2 +-
 hw/pci/shpc.c                           |  22 ++-
 hw/pcmcia/pxa2xx.c                      |   3 +-
 hw/ppc/e500.c                           |  11 +-
 hw/ppc/mac_newworld.c                   |   2 +-
 hw/ppc/mac_oldworld.c                   |   2 +-
 hw/ppc/pnv.c                            |  52 +++----
 hw/ppc/pnv_core.c                       |  25 ++--
 hw/ppc/pnv_lpc.c                        |   2 +-
 hw/ppc/pnv_occ.c                        |   2 +-
 hw/ppc/pnv_psi.c                        |   5 +-
 hw/ppc/pnv_xscom.c                      |   2 +-
 hw/ppc/prep.c                           |   9 +-
 hw/ppc/prep_systemio.c                  |   2 +-
 hw/ppc/rs6000_mc.c                      |   2 +-
 hw/ppc/spapr.c                          |  89 ++++++------
 hw/ppc/spapr_cpu_core.c                 |   9 +-
 hw/ppc/spapr_drc.c                      |  66 +++++----
 hw/ppc/spapr_hcall.c                    |   2 +-
 hw/ppc/spapr_iommu.c                    |   7 +-
 hw/ppc/spapr_pci.c                      |  30 ++--
 hw/ppc/spapr_rng.c                      |   6 +-
 hw/ppc/spapr_rtc.c                      |   9 +-
 hw/ppc/spapr_vio.c                      |   2 +-
 hw/s390x/3270-ccw.c                     |   2 +-
 hw/s390x/ccw-device.c                   |   2 +-
 hw/s390x/css-bridge.c                   |   8 +-
 hw/s390x/css.c                          |  18 ++-
 hw/s390x/event-facility.c               |  12 +-
 hw/s390x/ipl.c                          |   7 +-
 hw/s390x/s390-ccw.c                     |   7 +-
 hw/s390x/s390-pci-bus.c                 |  20 +--
 hw/s390x/s390-skeys.c                   |  16 ++-
 hw/s390x/s390-virtio-ccw.c              |  49 +++----
 hw/s390x/s390-virtio.c                  |   4 +-
 hw/s390x/sclp.c                         |   9 +-
 hw/s390x/virtio-ccw.c                   |  61 ++++----
 hw/scsi/esp-pci.c                       |  10 +-
 hw/scsi/esp.c                           |   2 +-
 hw/scsi/lsi53c895a.c                    |   4 +-
 hw/scsi/megasas.c                       |   4 +-
 hw/scsi/mptsas.c                        |   2 +-
 hw/scsi/scsi-bus.c                      |  34 ++---
 hw/scsi/scsi-disk.c                     |  24 ++--
 hw/scsi/scsi-generic.c                  |   2 +-
 hw/scsi/spapr_vscsi.c                   |   2 +-
 hw/scsi/vhost-scsi-common.c             |   2 +-
 hw/scsi/vhost-scsi.c                    |  17 +--
 hw/scsi/virtio-scsi-dataplane.c         |   2 +-
 hw/scsi/virtio-scsi.c                   |  22 +--
 hw/scsi/vmw_pvscsi.c                    |  10 +-
 hw/sd/pl181.c                           |   2 +-
 hw/sd/sd.c                              |   4 +-
 hw/sd/sdhci.c                           |   4 +-
 hw/sd/ssi-sd.c                          |   2 +-
 hw/sh4/sh_pci.c                         |   2 +-
 hw/smbios/smbios-stub.c                 |   2 +-
 hw/smbios/smbios.c                      |   2 +-
 hw/sparc/sun4m.c                        |   4 +-
 hw/sparc64/sun4u.c                      |   6 +-
 hw/ssi/aspeed_smc.c                     |   2 +-
 hw/ssi/imx_spi.c                        |   2 +-
 hw/ssi/ssi.c                            |   2 +-
 hw/ssi/xilinx_spips.c                   |   4 +-
 hw/timer/a9gtimer.c                     |   2 +-
 hw/timer/altera_timer.c                 |   2 +-
 hw/timer/arm_mptimer.c                  |   2 +-
 hw/timer/arm_timer.c                    |   2 +-
 hw/timer/aspeed_timer.c                 |   2 +-
 hw/timer/hpet.c                         |   2 +-
 hw/timer/i8254.c                        |   2 +-
 hw/timer/i8254_common.c                 |   2 +-
 hw/timer/imx_epit.c                     |   2 +-
 hw/timer/imx_gpt.c                      |   2 +-
 hw/timer/lm32_timer.c                   |   2 +-
 hw/timer/m48t59-isa.c                   |   2 +-
 hw/timer/m48t59.c                       |   4 +-
 hw/timer/mc146818rtc.c                  |  14 +-
 hw/timer/milkymist-sysctl.c             |   2 +-
 hw/timer/pxa2xx_timer.c                 |   2 +-
 hw/timer/xilinx_timer.c                 |   2 +-
 hw/tpm/tpm_tis.c                        |   2 +-
 hw/usb/bus.c                            |  64 ++++-----
 hw/usb/dev-audio.c                      |   4 +-
 hw/usb/dev-bluetooth.c                  |   4 +-
 hw/usb/dev-hid.c                        |  13 +-
 hw/usb/dev-hub.c                        |   4 +-
 hw/usb/dev-mtp.c                        |   2 +-
 hw/usb/dev-network.c                    |   6 +-
 hw/usb/dev-serial.c                     |   8 +-
 hw/usb/dev-smartcard-reader.c           |   4 +-
 hw/usb/dev-storage.c                    |  18 +--
 hw/usb/dev-uas.c                        |   4 +-
 hw/usb/dev-wacom.c                      |   4 +-
 hw/usb/hcd-ehci-pci.c                   |   7 +-
 hw/usb/hcd-ehci-sysbus.c                |   2 +-
 hw/usb/hcd-ehci.c                       |   6 +-
 hw/usb/hcd-ohci.c                       |  18 +--
 hw/usb/hcd-uhci.c                       |  10 +-
 hw/usb/hcd-xhci.c                       |   4 +-
 hw/usb/host-libusb.c                    |   6 +-
 hw/usb/redirect.c                       |   6 +-
 hw/vfio/amd-xgbe.c                      |   2 +-
 hw/vfio/calxeda-xgmac.c                 |   2 +-
 hw/vfio/ccw.c                           |  14 +-
 hw/vfio/common.c                        |   7 +-
 hw/vfio/pci-quirks.c                    |   6 +-
 hw/vfio/pci.c                           |  35 +++--
 hw/vfio/platform.c                      |   9 +-
 hw/virtio/vhost-vsock.c                 |   8 +-
 hw/virtio/virtio-balloon.c              |  25 ++--
 hw/virtio/virtio-bus.c                  |   2 +-
 hw/virtio/virtio-crypto-pci.c           |   5 +-
 hw/virtio/virtio-crypto.c               |  12 +-
 hw/virtio/virtio-mmio.c                 |   2 +-
 hw/virtio/virtio-pci.c                  |  48 ++++---
 hw/virtio/virtio-rng.c                  |  20 +--
 hw/virtio/virtio.c                      |  24 ++--
 hw/watchdog/watchdog.c                  |   3 +-
 hw/watchdog/wdt_aspeed.c                |   2 +-
 hw/watchdog/wdt_diag288.c               |   4 +-
 hw/watchdog/wdt_i6300esb.c              |   2 +-
 hw/watchdog/wdt_ib700.c                 |   2 +-
 hw/xen/xen-host-pci-device.c            |  12 +-
 hw/xen/xen_backend.c                    |   4 +-
 hw/xen/xen_pt.c                         |   2 +-
 hw/xen/xen_pt_config_init.c             |   4 +-
 hw/xen/xen_pt_graphics.c                |   2 +-
 hw/xen/xen_pvdev.c                      |   3 +-
 io/channel-buffer.c                     |  10 +-
 io/channel-command.c                    |  16 +--
 io/channel-file.c                       |  12 +-
 io/channel-socket.c                     |  30 ++--
 io/channel-tls.c                        |  18 +--
 io/channel-util.c                       |   2 +-
 io/channel-websock.c                    |  26 ++--
 io/channel.c                            |  20 +--
 io/dns-resolver.c                       |   6 +-
 io/task.c                               |   2 +-
 iothread.c                              |   8 +-
 linux-user/elfload.c                    |   4 +-
 linux-user/uname.c                      |   3 +-
 memory.c                                |  21 +--
 memory_mapping.c                        |   2 +-
 migration/block.c                       |   3 +-
 migration/colo-failover.c               |   4 +-
 migration/colo.c                        |  38 +++--
 migration/exec.c                        |   5 +-
 migration/fd.c                          |   5 +-
 migration/migration.c                   |  43 +++---
 migration/qemu-file-channel.c           |  11 +-
 migration/ram.c                         |   4 +-
 migration/rdma.c                        |  40 +++---
 migration/savevm.c                      |  14 +-
 migration/socket.c                      |  18 +--
 migration/tls.c                         |   6 +-
 monitor.c                               |  57 ++++----
 nbd/client.c                            |  29 ++--
 nbd/common.c                            |   2 +-
 nbd/server.c                            |  22 +--
 net/colo-compare.c                      |  25 ++--
 net/dump.c                              |  19 +--
 net/filter-buffer.c                     |  11 +-
 net/filter-mirror.c                     |  22 +--
 net/filter-rewriter.c                   |   2 +-
 net/filter.c                            |  30 ++--
 net/hub.c                               |   2 +-
 net/l2tpv3.c                            |   2 +-
 net/net.c                               |  31 +++--
 net/netmap.c                            |   5 +-
 net/slirp.c                             |   2 +-
 net/socket.c                            |   2 +-
 net/tap-bsd.c                           |  10 +-
 net/tap-linux.c                         |   5 +-
 net/tap-solaris.c                       |   7 +-
 net/tap-stub.c                          |   5 +-
 net/tap-win32.c                         |   2 +-
 net/tap.c                               |  21 ++-
 net/vde.c                               |   2 +-
 net/vhost-user.c                        |   7 +-
 numa.c                                  |  21 +--
 qapi/opts-visitor.c                     |  28 ++--
 qapi/qapi-clone-visitor.c               |  20 +--
 qapi/qapi-dealloc-visitor.c             |  22 +--
 qapi/qapi-util.c                        |   2 +-
 qapi/qmp-dispatch.c                     |   5 +-
 qapi/qobject-input-visitor.c            |  50 ++++---
 qapi/qobject-output-visitor.c           |  20 +--
 qapi/string-input-visitor.c             |  25 ++--
 qapi/string-output-visitor.c            |  14 +-
 qdev-monitor.c                          |  35 +++--
 qemu-img.c                              |  28 ++--
 qemu-io.c                               |   2 +-
 qemu-nbd.c                              |   7 +-
 qga/commands-posix.c                    | 222 ++++++++++++++----------------
 qga/commands-win32.c                    | 101 +++++++-------
 qga/commands.c                          |  16 +--
 qga/main.c                              |   4 +-
 qga/vss-win32.c                         |   2 +-
 qmp.c                                   |  87 ++++++------
 qobject/json-parser.c                   |   5 +-
 qobject/qdict.c                         |   4 +-
 qobject/qjson.c                         |   5 +-
 qom/container.c                         |   3 +-
 qom/cpu.c                               |  10 +-
 qom/object.c                            | 237 +++++++++++++++-----------------
 qom/object_interfaces.c                 |  15 +-
 qom/qom-qobject.c                       |   4 +-
 qtest.c                                 |   3 +-
 replication.c                           |  32 ++---
 stubs/arch-query-cpu-def.c              |   2 +-
 stubs/arch-query-cpu-model-baseline.c   |   2 +-
 stubs/arch-query-cpu-model-comparison.c |   2 +-
 stubs/arch-query-cpu-model-expansion.c  |   2 +-
 stubs/migr-blocker.c                    |   2 +-
 stubs/monitor.c                         |   2 +-
 stubs/uuid.c                            |   2 +-
 stubs/vmgenid.c                         |   2 +-
 stubs/vmstate.c                         |   2 +-
 stubs/xen-hvm.c                         |   4 +-
 target/alpha/cpu.c                      |  10 +-
 target/arm/cpu.c                        |   8 +-
 target/arm/cpu64.c                      |   9 +-
 target/arm/helper.c                     |   2 +-
 target/arm/monitor.c                    |   2 +-
 target/cris/cpu.c                       |   8 +-
 target/hppa/cpu.c                       |  10 +-
 target/i386/arch_memory_mapping.c       |   2 +-
 target/i386/cpu.c                       | 133 +++++++++---------
 target/lm32/cpu.c                       |   8 +-
 target/m68k/cpu.c                       |   8 +-
 target/m68k/helper.c                    |   3 +-
 target/microblaze/cpu.c                 |   8 +-
 target/microblaze/translate.c           |   3 +-
 target/mips/cpu.c                       |   8 +-
 target/mips/translate.c                 |   3 +-
 target/moxie/cpu.c                      |   8 +-
 target/nios2/cpu.c                      |  10 +-
 target/openrisc/cpu.c                   |   8 +-
 target/ppc/compat.c                     |   5 +-
 target/ppc/kvm.c                        |   4 +-
 target/ppc/translate_init.c             |  35 ++---
 target/s390x/cpu.c                      |  14 +-
 target/s390x/cpu_models.c               |  79 ++++++-----
 target/s390x/helper.c                   |   7 +-
 target/s390x/kvm.c                      |  10 +-
 target/sh4/cpu.c                        |   8 +-
 target/sparc/cpu.c                      |  14 +-
 target/tilegx/cpu.c                     |  10 +-
 target/tricore/cpu.c                    |   8 +-
 target/unicore32/cpu.c                  |   8 +-
 target/xtensa/cpu.c                     |   8 +-
 target/xtensa/helper.c                  |   3 +-
 tests/check-qom-proplist.c              |  29 ++--
 tests/io-channel-helpers.c              |   4 +-
 tests/test-char.c                       |   2 +-
 tests/test-crypto-block.c               |   6 +-
 tests/test-crypto-hash.c                |   3 +-
 tests/test-crypto-tlscredsx509.c        |   4 +-
 tests/test-crypto-tlssession.c          |   2 +-
 tests/test-io-channel-socket.c          |   2 +-
 tests/test-io-channel-tls.c             |  13 +-
 tests/test-logging.c                    |   3 +-
 tests/test-qapi-util.c                  | 101 +++++++++++++-
 tests/test-qdev-global-props.c          |   9 +-
 tests/test-qemu-opts.c                  |   6 +-
 tests/test-qmp-commands.c               |  17 +--
 tests/test-qmp-event.c                  |   3 +-
 tests/test-string-input-visitor.c       |  12 +-
 tests/test-visitor-serialization.c      |  25 ++--
 tpm.c                                   |  10 +-
 trace/qmp.c                             |   8 +-
 ui/console.c                            |  12 +-
 ui/gtk.c                                |  15 +-
 ui/input-legacy.c                       |   2 +-
 ui/input-linux.c                        |  20 +--
 ui/input.c                              |   6 +-
 ui/spice-core.c                         |   7 +-
 ui/vnc-auth-sasl.c                      |   6 +-
 ui/vnc.c                                |  38 ++---
 util/aio-posix.c                        |   3 +-
 util/aio-win32.c                        |   3 +-
 util/async.c                            |   2 +-
 util/base64.c                           |   2 +-
 util/error.c                            |  29 ++--
 util/keyval.c                           |   9 +-
 util/log.c                              |   4 +-
 util/main-loop.c                        |   2 +-
 util/qemu-config.c                      |  28 ++--
 util/qemu-option.c                      |  68 +++++----
 util/qemu-sockets.c                     |  79 ++++++-----
 util/throttle.c                         |   2 +-
 vl.c                                    |  99 +++++++------
 tests/Makefile.include                  |   2 +-
 859 files changed, 5107 insertions(+), 4988 deletions(-)

-- 
2.11.0.259.g40922b1

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2017-07-03 13:48 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-13 16:52 [Qemu-devel] [RFC 00/15] Error API: Flag errors in *errp even if errors are being ignored Eduardo Habkost
2017-06-13 16:52 ` [Qemu-devel] [RFC 01/15] tests: Test cases for error API Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 02/15] error: New IGNORE_ERRORS macro Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 03/15] Add qapi/error.h includes on files that will need it Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 04/15] [coccinelle] Use IGNORE_ERRORS instead of NULL as errp argument Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 05/15] qapi: Use IGNORE_ERRORS instead of NULL on generated code Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 06/15] test-qapi-util: Use IGNORE_ERRORS instead of NULL Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 07/15] Manual changes to use " Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 08/15] error: New ERR_IS_* macros for checking Error** values Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 09/15] [coccinelle] Use ERR_IS_* macros Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 10/15] test-qapi-util: " Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 11/15] Manual changes to use " Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 12/15] error: Make IGNORED_ERRORS not a NULL pointer Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 13/15] rdma: Simplify var declaration to avoid confusing Coccinelle Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 14/15] [coccinelle] Eliminate unnecessary local_err/error_propagate() usage Eduardo Habkost
2017-06-13 16:53 ` [Qemu-devel] [RFC 15/15] [test only] Use 'Error *err[static 1]' instead of 'Error **errp' to catch NULL errp arguments Eduardo Habkost
     [not found]   ` <20170615121407.GA2399@work-vm>
2017-06-17 19:33     ` Eduardo Habkost
2017-06-19  8:48       ` Dr. David Alan Gilbert
2017-06-19  9:43         ` Peter Maydell
2017-06-19 13:26           ` Eduardo Habkost
2017-06-27 20:12             ` Eric Blake
2017-06-27 21:31               ` Eduardo Habkost
2017-06-27 20:22 ` [Qemu-devel] [RFC 00/15] Error API: Flag errors in *errp even if errors are being ignored Eric Blake
2017-06-28  9:05 ` Markus Armbruster
2017-06-28 17:41   ` Eduardo Habkost
2017-06-29  6:54     ` Markus Armbruster
2017-06-29 12:57       ` Eduardo Habkost
2017-06-30 11:40         ` Markus Armbruster
2017-07-01 14:20           ` Eduardo Habkost
2017-07-03 12:51             ` Markus Armbruster
2017-07-01 14:29           ` Eduardo Habkost
2017-07-03 13:21             ` Markus Armbruster
2017-07-03 13:47               ` Eduardo Habkost
2017-06-29 14:01     ` Daniel P. Berrange
2017-06-29 13:39   ` Paolo Bonzini
2017-06-29 14:18     ` Daniel P. Berrange
2017-06-29 17:09       ` Eduardo Habkost
2017-06-29 17:38         ` Daniel P. Berrange
2017-06-29 17:47           ` Eduardo Habkost
2017-06-29 18:04             ` Daniel P. Berrange
2017-06-29 14:14   ` Daniel P. Berrange

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.