qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 00e3b2: hw/audio/es1370: reset current sample


From: Alex Bennée
Subject: [Qemu-commits] [qemu/qemu] 00e3b2: hw/audio/es1370: reset current sample counter
Date: Wed, 11 Oct 2023 10:04:30 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 00e3b29d065f3b88bb3726afbd5c73f8b2bff1b4
      
https://github.com/qemu/qemu/commit/00e3b29d065f3b88bb3726afbd5c73f8b2bff1b4
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c

  Log Message:
  -----------
  hw/audio/es1370: reset current sample counter

Reset the current sample counter when writing the Channel Sample
Count Register. The Linux ens1370 driver and the AROS sb128
driver expect the current sample counter counts down from sample
count to 0 after a write to the Channel Sample Count Register.
Currently the current sample counter starts from 0 after a reset
or the last count when the counter was stopped.

The current sample counter is used to raise an interrupt whenever
a complete buffer was transferred. When the counter starts with a
value lower than the reload value, the interrupt triggeres before
the buffer was completly transferred. This may lead to corrupted
audio streams.

Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-1-vr_qemu@t-online.de>


  Commit: 0116f746d054a87864397fa45267cbcfe0aa89fc
      
https://github.com/qemu/qemu/commit/0116f746d054a87864397fa45267cbcfe0aa89fc
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c
    M hw/audio/trace-events

  Log Message:
  -----------
  hw/audio/es1370: replace bit-rotted code with tracepoints

It seems that nobody has enabled the debug code of the ES1370
device for a long time. Since then, the code has bit-rotted.
Replace the bit-rotten code with tracepoints.

Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-2-vr_qemu@t-online.de>


  Commit: 190514258c337d0763f43ba55363b820a32c1dd7
      
https://github.com/qemu/qemu/commit/190514258c337d0763f43ba55363b820a32c1dd7
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c

  Log Message:
  -----------
  hw/audio/es1370: remove unused dolog macro

The dolog macro is unused. Remove the macro and use the now unused
ES1370_VERBOSE macro to replace its inverse ES1370_SILENT macro.

Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-3-vr_qemu@t-online.de>


  Commit: 480e4c7abc9cb9e45b32563081841407016ed6aa
      
https://github.com/qemu/qemu/commit/480e4c7abc9cb9e45b32563081841407016ed6aa
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c

  Log Message:
  -----------
  hw/audio/es1370: remove #ifdef ES1370_DEBUG to avoid bit rot

Replace the #ifdef ES1370_DEBUG code with code that the compiler
can optimize away to avoid bit rot. While at it, replace strcat()
with pstrcat().

Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-4-vr_qemu@t-online.de>


  Commit: a4b342a3318667bb962ca28e2286dc2e53397c7a
      
https://github.com/qemu/qemu/commit/a4b342a3318667bb962ca28e2286dc2e53397c7a
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c

  Log Message:
  -----------
  hw/audio/es1370: remove #ifdef ES1370_VERBOSE to avoid bit rot

Replace the #ifdef ES1370_VERBOSE code with code that the compiler
can optimize away to avoid bit rot and fix the already rotten code.

Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-5-vr_qemu@t-online.de>


  Commit: 02e7de686ae6d1ac3419e1c5bfc038599c493f4a
      
https://github.com/qemu/qemu/commit/02e7de686ae6d1ac3419e1c5bfc038599c493f4a
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c

  Log Message:
  -----------
  hw/audio/es1370: block structure coding style fixes

Change the block structure according to the QEMU Coding Style
documentation.

Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-6-vr_qemu@t-online.de>


  Commit: ca98851835645f46eaa5b98bbfb307650b42fc64
      
https://github.com/qemu/qemu/commit/ca98851835645f46eaa5b98bbfb307650b42fc64
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c

  Log Message:
  -----------
  hw/audio/es1370: change variable type and name

Change the type of the variable temp to size_t to avoid a type
cast. While at it, rename the variable name to to_transfer. This
improves the readability of the code.

Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-7-vr_qemu@t-online.de>


  Commit: 5bf1a71c5b7b2d1999f65c08b4d82b5dec9f3013
      
https://github.com/qemu/qemu/commit/5bf1a71c5b7b2d1999f65c08b4d82b5dec9f3013
  Author: Volker Rümelin <vr_qemu@t-online.de>
  Date:   2023-10-10 (Tue, 10 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c
    M hw/audio/trace-events

  Log Message:
  -----------
  hw/audio/es1370: trace lost interrupts

It turns out that there are drivers which assume that interrupts
can't be lost. E.g. the AROS sb128 driver is such a driver. Add
a lost interrupt tracepoint to debug this kind of issues.

Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-8-vr_qemu@t-online.de>


  Commit: 404b78446aedbc660f41f7737bef3e8b1ec7d90d
      
https://github.com/qemu/qemu/commit/404b78446aedbc660f41f7737bef3e8b1ec7d90d
  Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M tests/avocado/machine_aarch64_sbsaref.py

  Log Message:
  -----------
  tests/avocado: update firmware to enable OpenBSD test on sbsa-ref

Update prebuilt firmware images:
- Neoverse V1/N2 cpu support
- non-secure EL2 virtual timer
- XHCI controller in DSDT

With those changes we can now run OpenBSD as part of sbsa-ref tests.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Message-Id: <20230927120050.210187-2-marcin.juszkiewicz@linaro.org>
[AJB: fix whitespace and longline]
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-2-alex.bennee@linaro.org>


  Commit: a956ea5b3473cfbaf90a8525ec78dd9c62fd8e03
      
https://github.com/qemu/qemu/commit/a956ea5b3473cfbaf90a8525ec78dd9c62fd8e03
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M tests/avocado/machine_aarch64_sbsaref.py

  Log Message:
  -----------
  tests/avocado: remove flaky test marking for test_sbsaref_edk2_firmware

After testing locally I decided to revert a5754847e0 (tests/avocado: Disable the
test_sbsaref_edk2_firmware by default) as the test seems pretty
stable:

   env QEMU_TEST_FLAKY_TESTS=1 retry.py -n 50 -c -- \
     ./tests/venv/bin/avocado run \
     
./tests/avocado/machine_aarch64_sbsaref.py:Aarch64SbsarefMachine.test_sbsaref_edk2_firmware

yields:

  Results summary:
  0: 50 times (100.00%), avg time 2.064 (0.04 varience/0.19 deviation)
  Ran command 50 times, 50 passes

Maybe f0ec14c78c (tests/avocado: Fix console data loss) has made it
more reliable?

Cc: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-3-alex.bennee@linaro.org>


  Commit: 3e3df0d84f8e23c56d64eef802c79d3de383b62f
      
https://github.com/qemu/qemu/commit/3e3df0d84f8e23c56d64eef802c79d3de383b62f
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/cirrus/macos-12.vars
    M tests/docker/dockerfiles/alpine.docker
    M tests/docker/dockerfiles/centos8.docker
    M tests/docker/dockerfiles/debian-amd64-cross.docker
    M tests/docker/dockerfiles/debian-amd64.docker
    M tests/docker/dockerfiles/debian-arm64-cross.docker
    M tests/docker/dockerfiles/debian-armhf-cross.docker
    M tests/docker/dockerfiles/debian-ppc64el-cross.docker
    M tests/docker/dockerfiles/debian-s390x-cross.docker
    M tests/docker/dockerfiles/fedora-win32-cross.docker
    M tests/docker/dockerfiles/fedora-win64-cross.docker
    M tests/docker/dockerfiles/fedora.docker
    M tests/docker/dockerfiles/opensuse-leap.docker
    M tests/docker/dockerfiles/ubuntu2204.docker
    M tests/lcitool/libvirt-ci
    M tests/lcitool/projects/qemu.yml

  Log Message:
  -----------
  tests/lcitool: add swtpm to the package list

We need this to test some TPM stuff.

Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-4-alex.bennee@linaro.org>


  Commit: 78ebc00b068131d2e3c0f8e66c0ded3fadb248d0
      
https://github.com/qemu/qemu/commit/78ebc00b068131d2e3c0f8e66c0ded3fadb248d0
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml

  Log Message:
  -----------
  gitlab: shuffle some targets and reduce avocado noise

We move a couple of targets out of the avocado runs because there are
no tests to run. Tricore already has some coverage.  The cris target
only really has check-tcg tests but its getting harder to find
anything that packages the compiler.

To reduce the noise of CANCEL messages we also set AVOCADO_TAGS
appropriately so we filter down the number of tests we attempt.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-5-alex.bennee@linaro.org>


  Commit: c6919250921c4794f4029bfe3f9f1c5263328899
      
https://github.com/qemu/qemu/commit/c6919250921c4794f4029bfe3f9f1c5263328899
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M configure
    M tests/docker/Makefile.include

  Log Message:
  -----------
  tests/docker: make docker engine choice entirely configure driven

Since 0b1a649047 (tests/docker: use direct RUNC call to build
containers) we ended up with the potential for the remaining docker.py
script calls to deviate from the direct RUNC calls. Fix this by
dropping the use of ENGINE in the makefile and rely entirely on what
we detect at configure time.

We also tweak the RUNC detection so podman users can still run things
from the source tree.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20231009164104.369749-6-alex.bennee@linaro.org>


  Commit: 42ede11aeeb1c87e8121bbaafa3aa7b242e99a25
      
https://github.com/qemu/qemu/commit/42ede11aeeb1c87e8121bbaafa3aa7b242e99a25
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: allow user to override docker engine

If you have both engines installed but one is broken you are stuck
with the automagic. Allow the user to override the engine for this
case.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20231009164104.369749-7-alex.bennee@linaro.org>


  Commit: e0f8951235b991eaa7a0e617976848b88d84c360
      
https://github.com/qemu/qemu/commit/e0f8951235b991eaa7a0e617976848b88d84c360
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: remove gcc version suffixes

The modern packaging of cross GCC's doesn't need the explicit version
number at the end.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-8-alex.bennee@linaro.org>


  Commit: af2e06c9f122a3bb83d11df85d21257808c414cb
      
https://github.com/qemu/qemu/commit/af2e06c9f122a3bb83d11df85d21257808c414cb
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M gdbstub/system.c

  Log Message:
  -----------
  gdbstub: Fix target_xml initialization

target_xml is no longer a fixed-length array but a pointer to a
variable-length memory.

Fixes: 56e534bd11 ("gdbstub: refactor get_feature_xml")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-2-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-9-alex.bennee@linaro.org>


  Commit: 5d1ab242067cdff30a8fc875933b14e21bb53308
      
https://github.com/qemu/qemu/commit/5d1ab242067cdff30a8fc875933b14e21bb53308
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M gdbstub/gdbstub.c

  Log Message:
  -----------
  gdbstub: Fix target.xml response

It was failing to return target.xml after the first request.

Fixes: 56e534bd11 ("gdbstub: refactor get_feature_xml")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-3-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-10-alex.bennee@linaro.org>


  Commit: fb13735ab418ef8a5f86a5fd6b056bdbafed0daa
      
https://github.com/qemu/qemu/commit/fb13735ab418ef8a5f86a5fd6b056bdbafed0daa
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M plugins/core.c

  Log Message:
  -----------
  plugins: Check if vCPU is realized

The created member of CPUState tells if the vCPU thread is started, and
will be always false for the user space emulation that manages threads
independently. Use the realized member of DeviceState, which is valid
for both of the system and user space emulation.

Fixes: 54cb65d858 ("plugin: add core code")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-4-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-11-alex.bennee@linaro.org>


  Commit: 1063693e1c503517a489e38fca489525eaea26c1
      
https://github.com/qemu/qemu/commit/1063693e1c503517a489e38fca489525eaea26c1
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M contrib/plugins/execlog.c

  Log Message:
  -----------
  contrib/plugins: Use GRWLock in execlog

execlog had the following comment:
> As we could have multiple threads trying to do this we need to
> serialise the expansion under a lock. Threads accessing already
> created entries can continue without issue even if the ptr array
> gets reallocated during resize.

However, when the ptr array gets reallocated, the other threads may have
a stale reference to the old buffer. This results in use-after-free.

Use GRWLock to properly fix this issue.

Fixes: 3d7caf145e ("contrib/plugins: add execlog to log instruction execution 
and memory access")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230912224107.29669-5-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-12-alex.bennee@linaro.org>


  Commit: 956af7daad5a97ca20f8e24d0f4d91a8fca650ad
      
https://github.com/qemu/qemu/commit/956af7daad5a97ca20f8e24d0f4d91a8fca650ad
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M MAINTAINERS
    M gdbstub/gdbstub.c
    M include/exec/gdbstub.h
    M meson.build
    A scripts/feature_to_c.py
    R scripts/feature_to_c.sh
    M stubs/gdbstub.c

  Log Message:
  -----------
  gdbstub: Introduce GDBFeature structure

Before this change, the information from a XML file was stored in an
array that is not descriptive. Introduce a dedicated structure type to
make it easier to understand and to extend with more fields.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230912224107.29669-6-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-13-alex.bennee@linaro.org>


  Commit: 48de6462809587a2165260b4daa8e6477fbd7b75
      
https://github.com/qemu/qemu/commit/48de6462809587a2165260b4daa8e6477fbd7b75
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M target/arm/cpu.c

  Log Message:
  -----------
  target/arm: Move the reference to arm-core.xml

Some subclasses overwrite gdb_core_xml_file member but others don't.
Always initialize the member in the subclasses for consistency.

This especially helps for AArch64; in a following change, the file
specified by gdb_core_xml_file is always looked up even if it's going to
be overwritten later. Looking up arm-core.xml results in an error as
it will not be embedded in the AArch64 build.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230912224107.29669-7-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-14-alex.bennee@linaro.org>


  Commit: a650683871ba728ebce3d320941f48bac91f0f6a
      
https://github.com/qemu/qemu/commit/a650683871ba728ebce3d320941f48bac91f0f6a
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M gdbstub/gdbstub.c
    M include/hw/core/cpu.h
    M target/arm/cpu.c
    M target/arm/cpu64.c
    M target/i386/cpu.c
    M target/loongarch/cpu.c
    M target/ppc/gdbstub.c
    M target/ppc/internal.h
    M target/riscv/cpu.c
    M target/s390x/cpu.c
    M target/tricore/cpu.c

  Log Message:
  -----------
  hw/core/cpu: Return static value with gdb_arch_name()

All implementations of gdb_arch_name() returns dynamic duplicates of
static strings. It's also unlikely that there will be an implementation
of gdb_arch_name() that returns a truly dynamic value due to the nature
of the function returning a well-known identifiers. Qualify the value
gdb_arch_name() with const and make all of its implementations return
static strings.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-8-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-15-alex.bennee@linaro.org>


  Commit: 6d8f77a6a152c1c64c5ee79e31fe3510b020cd0e
      
https://github.com/qemu/qemu/commit/6d8f77a6a152c1c64c5ee79e31fe3510b020cd0e
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M gdbstub/gdbstub.c

  Log Message:
  -----------
  gdbstub: Use g_markup_printf_escaped()

g_markup_printf_escaped() is a safer alternative to simple printf() as
it automatically escapes values.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-9-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-16-alex.bennee@linaro.org>


  Commit: dd2f7e2974b1cefe00cb5077ae58134ef973070d
      
https://github.com/qemu/qemu/commit/dd2f7e2974b1cefe00cb5077ae58134ef973070d
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M target/arm/gdbstub.c

  Log Message:
  -----------
  target/arm: Remove references to gdb_has_xml

GDB has XML support since 6.7 which was released in 2007.
It's time to remove support for old GDB versions without XML support.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-10-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-17-alex.bennee@linaro.org>


  Commit: 8e6d3ea2f5163e12baf86692b1fb1de2fea66625
      
https://github.com/qemu/qemu/commit/8e6d3ea2f5163e12baf86692b1fb1de2fea66625
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M target/ppc/gdbstub.c

  Log Message:
  -----------
  target/ppc: Remove references to gdb_has_xml

GDB has XML support since 6.7 which was released in 2007.
It's time to remove support for old GDB versions without XML support.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-11-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-18-alex.bennee@linaro.org>


  Commit: 213316d401e72b218d8edd9b88d72df6ecf0cc49
      
https://github.com/qemu/qemu/commit/213316d401e72b218d8edd9b88d72df6ecf0cc49
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M gdbstub/gdbstub.c
    M gdbstub/internals.h
    M include/exec/gdbstub.h

  Log Message:
  -----------
  gdbstub: Remove gdb_has_xml variable

GDB has XML support since 6.7 which was released in 2007.
It's time to remove support for old GDB versions without XML support.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-12-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-19-alex.bennee@linaro.org>


  Commit: 73c392c26b0c96eb07272ea21cc0062ce534b6a3
      
https://github.com/qemu/qemu/commit/73c392c26b0c96eb07272ea21cc0062ce534b6a3
  Author: Akihiko Odaki <akihiko.odaki@daynix.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M gdbstub/gdbstub.c
    M include/hw/core/cpu.h

  Log Message:
  -----------
  gdbstub: Replace gdb_regs with an array

An array is a more appropriate data structure than a list for gdb_regs
since it is initialized only with append operation and read-only after
initialization.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-13-akihiko.odaki@daynix.com>
[AJB: fixed a checkpatch violation]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-20-alex.bennee@linaro.org>


  Commit: 28a4f0bacf62f10c6f258c753df1f5d04cd17bd8
      
https://github.com/qemu/qemu/commit/28a4f0bacf62f10c6f258c753df1f5d04cd17bd8
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M accel/tcg/translator.c
    M include/exec/translator.h

  Log Message:
  -----------
  accel/tcg: Add plugin_enabled to DisasContextBase

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230824181233.1568795-2-richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-21-alex.bennee@linaro.org>


  Commit: 4f9ef4eebcc366fee20cce55aac659c6913bbf49
      
https://github.com/qemu/qemu/commit/4f9ef4eebcc366fee20cce55aac659c6913bbf49
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M target/sh4/translate.c

  Log Message:
  -----------
  target/sh4: Disable decode_gusa when plugins enabled

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230824181233.1568795-3-richard.henderson@linaro.org>
[AJB: fixed s/cpu_env/tcg_env/ during re-base]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-22-alex.bennee@linaro.org>


  Commit: a392277dcf00e7bf6f7a0ecc9075ea154532c436
      
https://github.com/qemu/qemu/commit/a392277dcf00e7bf6f7a0ecc9075ea154532c436
  Author: Matt Borgerson <contact@mborgerson.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M accel/tcg/plugin-gen.c
    M accel/tcg/translator.c
    M include/exec/plugin-gen.h

  Log Message:
  -----------
  plugins: Set final instruction count in plugin_gen_tb_end

Translation logic may partially decode an instruction, then abort and
remove the instruction from the TB. This can happen for example when an
instruction spans two pages. In this case, plugins may get an incorrect
result when calling qemu_plugin_tb_n_insns to query for the number of
instructions in the TB. This patch updates plugin_gen_tb_end to set the
final instruction count.

Signed-off-by: Matt Borgerson <contact@mborgerson.com>
[AJB: added g_assert to defed API]
Message-Id: <CADc=-s5RwGViNTR-h5cq3np673W3RRFfhr4vCGJp0EoDUxvhog@mail.gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-23-alex.bennee@linaro.org>


  Commit: 60cb16c0d87ae0939f4c53c2444a168fdf790a44
      
https://github.com/qemu/qemu/commit/60cb16c0d87ae0939f4c53c2444a168fdf790a44
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M contrib/plugins/cache.c

  Log Message:
  -----------
  contrib/plugins: fix coverity warning in cache

Coverity complains that appends_stats_line can be fed a 0 leading
to the undefined behaviour of a divide by 0.

Fixes: CID 1519044
Fixes: CID 1519047
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-24-alex.bennee@linaro.org>


  Commit: ec7ee95db90984509bb0824d62d1272f53cbec19
      
https://github.com/qemu/qemu/commit/ec7ee95db90984509bb0824d62d1272f53cbec19
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M contrib/plugins/lockstep.c

  Log Message:
  -----------
  contrib/plugins: fix coverity warning in lockstep

Coverity complains that e don't check for a truncation when copying in
the path. Bail if we can't copy the whole path into sockaddr.

Fixes: CID 1519045
Fixes: CID 1519046
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-25-alex.bennee@linaro.org>


  Commit: 5b982f3bdeee8f0b2215d53012fea4da7c558cc6
      
https://github.com/qemu/qemu/commit/5b982f3bdeee8f0b2215d53012fea4da7c558cc6
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M contrib/plugins/hotblocks.c

  Log Message:
  -----------
  contrib/plugins: fix coverity warning in hotblocks

Coverity complains that we have an unbalance use of mutex leading to
potential deadlocks.

Fixes: CID 1519048
Fixes: a208ba09bd ("tests/plugin: add a hotblocks plugin")
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-26-alex.bennee@linaro.org>


  Commit: 86dec715a7339fc61c3bdb9715993b277b2089db
      
https://github.com/qemu/qemu/commit/86dec715a7339fc61c3bdb9715993b277b2089db
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/options.c

  Log Message:
  -----------
  migration/qmp: Fix crash on setting tls-authz with null

QEMU will crash if anyone tries to set tls-authz (which is a type
StrOrNull) with 'null' value.  Fix it in the easy way by converting it to
qstring just like the other two tls parameters.

Cc: qemu-stable@nongnu.org # v4.0+
Fixes: d2f1d29b95 ("migration: add support for a "tls-authz" migration 
parameter")
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230905162335.235619-2-peterx@redhat.com>


  Commit: 9d47929034eb8f3e67411926bdd1e8246d2797ed
      
https://github.com/qemu/qemu/commit/9d47929034eb8f3e67411926bdd1e8246d2797ed
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M tests/qtest/migration-helpers.c
    M tests/qtest/migration-helpers.h
    M tests/qtest/migration-test.c

  Log Message:
  -----------
  tests/qtest: migration: Expose migrate_set_capability

The following patch will make use of this function from within
migrate-helpers.c, so move it there.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-2-farosas@suse.de>


  Commit: 28fa97e00698eecc9a7f7eeca43ccbdee3d33b3e
      
https://github.com/qemu/qemu/commit/28fa97e00698eecc9a7f7eeca43ccbdee3d33b3e
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M tests/qtest/migration-helpers.c
    M tests/qtest/migration-helpers.h

  Log Message:
  -----------
  tests/qtest: migration: Add migrate_incoming_qmp helper

file-based migration requires the target to initiate its migration after
the source has finished writing out the data in the file. Currently
there's no easy way to initiate 'migrate-incoming', allow this by
introducing migrate_incoming_qmp helper, similarly to migrate_qmp.

Also make sure migration events are enabled and wait for the incoming
migration to start before returning. This avoid a race when querying
the migration status too soon after issuing the command.

Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-3-farosas@suse.de>


  Commit: 6830e53b4bd96fe00b72730a3546c5b65ea840a6
      
https://github.com/qemu/qemu/commit/6830e53b4bd96fe00b72730a3546c5b65ea840a6
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M tests/qtest/meson.build
    M tests/qtest/migration-test.c
    M tests/qtest/virtio-net-failover.c

  Log Message:
  -----------
  tests/qtest: migration: Use migrate_incoming_qmp where appropriate

Use the new migrate_incoming_qmp helper in the places that currently
open-code calling migrate-incoming.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-4-farosas@suse.de>


  Commit: 4111a732e80894256c9053577f0e9369eeea807b
      
https://github.com/qemu/qemu/commit/4111a732e80894256c9053577f0e9369eeea807b
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: Set migration status early in incoming side

We are sending a migration event of MIGRATION_STATUS_SETUP at
qemu_start_incoming_migration but never actually setting the state.

This creates a window between qmp_migrate_incoming and
process_incoming_migration_co where the migration status is still
MIGRATION_STATUS_NONE. Calling query-migrate during this time will
return an empty response even though the incoming migration command
has already been issued.

Commit 7cf1fe6d68 ("migration: Add migration events on target side")
has added support to the 'events' capability to the incoming part of
migration, but chose to send the SETUP event without setting the
state. I'm assuming this was a mistake.

This introduces a change in behavior, any QMP client waiting for the
SETUP event will hang, unless it has previously enabled the 'events'
capability. Having the capability enabled is sufficient to continue to
receive the event.

Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-5-farosas@suse.de>


  Commit: 5274274c262edc6738ddc5c590dc0a08dd1090b1
      
https://github.com/qemu/qemu/commit/5274274c262edc6738ddc5c590dc0a08dd1090b1
  Author: Fabiano Rosas <farosas@suse.de>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M tests/qtest/libqtest.c
    M tests/qtest/libqtest.h
    M tests/qtest/migration-helpers.c
    M tests/qtest/migration-helpers.h
    M tests/qtest/migration-test.c

  Log Message:
  -----------
  tests/qtest: migration: Add support for negative testing of qmp_migrate

There is currently no way to write a test for errors that happened in
qmp_migrate before the migration has started.

Add a version of qmp_migrate that ensures an error happens. To make
use of it a test needs to set MigrateCommon.result as
MIG_TEST_QMP_ERROR.

Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-6-farosas@suse.de>


  Commit: 0e99bb8f54418231baa084f1d8270e7500e48245
      
https://github.com/qemu/qemu/commit/0e99bb8f54418231baa084f1d8270e7500e48245
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: Allow RECOVER->PAUSED convertion for dest qemu

There's a bug on dest that if a double fault triggered on dest qemu (a
network issue during postcopy-recover), we won't set PAUSED correctly
because we assumed we always came from ACTIVE.

Fix that by always overwriting the state to PAUSE.

We could also check for these two states, but maybe it's an overkill.  We
did the same on the src QEMU to unconditionally switch to PAUSE anyway.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-10-peterx@redhat.com>


  Commit: b72eacf3c014ba7cbccee57a791589822e175580
      
https://github.com/qemu/qemu/commit/b72eacf3c014ba7cbccee57a791589822e175580
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Clean up qemu_rdma_poll()'s return type

qemu_rdma_poll()'s return type is uint64_t, even though it returns 0,
-1, or @ret, which is int.  Its callers assign the return value to int
variables, then check whether it's negative.  Unclean.

Return int instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-2-armbru@redhat.com>


  Commit: c07d19622ce5ece8097c393ad5974f0ecea50185
      
https://github.com/qemu/qemu/commit/c07d19622ce5ece8097c393ad5974f0ecea50185
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Clean up qemu_rdma_data_init()'s return type

qemu_rdma_data_init() return type is void *.  It actually returns
RDMAContext *, and all its callers assign the value to an
RDMAContext *.  Unclean.

Return RDMAContext * instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-3-armbru@redhat.com>


  Commit: 1720a2a8758431810a1d7bdb51780d87bb55b4b4
      
https://github.com/qemu/qemu/commit/1720a2a8758431810a1d7bdb51780d87bb55b4b4
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Clean up rdma_delete_block()'s return type

rdma_delete_block() always returns 0, which its only caller ignores.
Return void instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-4-armbru@redhat.com>


  Commit: b5631d5bda04b8653c9232682bebad9584c9857c
      
https://github.com/qemu/qemu/commit/b5631d5bda04b8653c9232682bebad9584c9857c
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c
    M migration/trace-events

  Log Message:
  -----------
  migration/rdma: Drop fragile wr_id formatting

wrid_desc[] uses 4001 pointers to map four integer values to strings.

print_wrid() accesses wrid_desc[] out of bounds when passed a negative
argument.  It returns null for values 2..1999 and 2001..3999.

qemu_rdma_poll() and qemu_rdma_block_for_wrid() print wrid_desc[wr_id]
and passes print_wrid(wr_id) to tracepoints.  Could conceivably crash
trying to format a null string.  I believe access out of bounds is not
possible.

Not worth cleaning up.  Dumb down to show just numeric wr_id.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-5-armbru@redhat.com>


  Commit: 87a24ca3f2054d1b3268ceb141751a1fff32cc9c
      
https://github.com/qemu/qemu/commit/87a24ca3f2054d1b3268ceb141751a1fff32cc9c
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c
    M migration/trace-events

  Log Message:
  -----------
  migration/rdma: Consistently use uint64_t for work request IDs

We use int instead of uint64_t in a few places.  Change them to
uint64_t.

This cleans up a comparison of signed qemu_rdma_block_for_wrid()
parameter @wrid_requested with unsigned @wr_id.  Harmless, because the
actual arguments are non-negative enumeration constants.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-6-armbru@redhat.com>


  Commit: 25352b371b37b038d50b75ec0a3557e77f1d74e3
      
https://github.com/qemu/qemu/commit/25352b371b37b038d50b75ec0a3557e77f1d74e3
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix unwanted integer truncation

qio_channel_rdma_readv() assigns the size_t value of qemu_rdma_fill()
to an int variable before it adds it to @done / subtracts it from
@want, both size_t.  Truncation when qemu_rdma_fill() copies more than
INT_MAX bytes.  Seems vanishingly unlikely, but needs fixing all the
same.

Fixes: 6ddd2d76ca6f (migration: convert RDMA to use QIOChannel interface)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-7-armbru@redhat.com>


  Commit: 8ff58b05a3f6294731b9defb1d821e2f8703c8f1
      
https://github.com/qemu/qemu/commit/8ff58b05a3f6294731b9defb1d821e2f8703c8f1
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Clean up two more harmless signed vs. unsigned issues

qemu_rdma_exchange_get_response() compares int parameter @expecting
with uint32_t head->type.  Actual arguments are non-negative
enumeration constants, RDMAControlHeader uint32_t member type, or
qemu_rdma_exchange_recv() int parameter expecting.  Actual arguments
for the latter are non-negative enumeration constants.  Change both
parameters to uint32_t.

In qio_channel_rdma_readv(), loop control variable @i is ssize_t, and
counts from 0 up to @niov, which is size_t.  Change @i to size_t.

While there, make qio_channel_rdma_readv() and
qio_channel_rdma_writev() more consistent: change the former's @done
to ssize_t, and delete the latter's useless initialization of @len.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-8-armbru@redhat.com>


  Commit: 36cc822d857ddf151a32a9f6fe851209ef4f089d
      
https://github.com/qemu/qemu/commit/36cc822d857ddf151a32a9f6fe851209ef4f089d
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Give qio_channel_rdma_source_funcs internal linkage

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-9-armbru@redhat.com>


  Commit: 9a6afb11705b5bd6332289d226fae783ffcc0e1d
      
https://github.com/qemu/qemu/commit/9a6afb11705b5bd6332289d226fae783ffcc0e1d
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix qemu_rdma_accept() to return failure on errors

qemu_rdma_accept() returns 0 in some cases even when it didn't
complete its job due to errors.  Impact is not obvious.  I figure the
caller will soon fail again with a misleading error message.

Fix it to return -1 on any failure.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-10-armbru@redhat.com>


  Commit: 3c03f21cb5ee0ded870987ea32217297f639afa0
      
https://github.com/qemu/qemu/commit/3c03f21cb5ee0ded870987ea32217297f639afa0
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Put @errp parameter last

include/qapi/error.h demands:

 * - Functions that use Error to report errors have an Error **errp
 *   parameter.  It should be the last parameter, except for functions
 *   taking variable arguments.

qemu_rdma_connect() does not conform.  Clean it up.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-11-armbru@redhat.com>


  Commit: b16defbbfe3ffe9601edda4f7886a295dea8f408
      
https://github.com/qemu/qemu/commit/b16defbbfe3ffe9601edda4f7886a295dea8f408
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Eliminate error_propagate()

When all we do with an Error we receive into a local variable is
propagating to somewhere else, we can just as well receive it there
right away.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-12-armbru@redhat.com>


  Commit: 0610d7a1d84f97e764474f5f5b65019640f73f4f
      
https://github.com/qemu/qemu/commit/0610d7a1d84f97e764474f5f5b65019640f73f4f
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Drop rdma_add_block() error handling

rdma_add_block() can't fail.  Return void, and drop the unreachable
error handling.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-13-armbru@redhat.com>


  Commit: 87e6bdabf033b681370d634226f1416bfcd9478a
      
https://github.com/qemu/qemu/commit/87e6bdabf033b681370d634226f1416bfcd9478a
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Drop qemu_rdma_search_ram_block() error handling

qemu_rdma_search_ram_block() can't fail.  Return void, and drop the
unreachable error handling.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-14-armbru@redhat.com>


  Commit: 6a3792d78dab35002120cd5aa468103c38cf9590
      
https://github.com/qemu/qemu/commit/6a3792d78dab35002120cd5aa468103c38cf9590
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Make qemu_rdma_buffer_mergeable() return bool

qemu_rdma_buffer_mergeable() is semantically a predicate.  It returns
int 0 or 1.  Return bool instead, and fix the function name's
spelling.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-15-armbru@redhat.com>


  Commit: 89997ac31839cde1746bf5d8d830e1d2db595e98
      
https://github.com/qemu/qemu/commit/89997ac31839cde1746bf5d8d830e1d2db595e98
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Use bool for two RDMAContext flags

@error_reported and @received_error are flags.  The latter is even
assigned bool true.  Change them from int to bool.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-16-armbru@redhat.com>


  Commit: 0bc2604508462184fa0ffb9a6c62c6f9a40a428d
      
https://github.com/qemu/qemu/commit/0bc2604508462184fa0ffb9a6c62c6f9a40a428d
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix or document problematic uses of errno

We use errno after calling Libibverbs functions that are not
documented to set errno (manual page does not mention errno), or where
the documentation is unclear ("returns [...] the value of errno on
failure").  While this could be read as "sets errno and returns it",
a glance at the source code[*] kills that hope:

    static inline int ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr *wr,
                                    struct ibv_send_wr **bad_wr)
    {
            return qp->context->ops.post_send(qp, wr, bad_wr);
    }

The callback can be

    static int mana_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
                              struct ibv_send_wr **bad)
    {
            /* This version of driver supports RAW QP only.
             * Posting WR is done directly in the application.
             */
            return EOPNOTSUPP;
    }

Neither of them touches errno.

One of these errno uses is easy to fix, so do that now.  Several more
will go away later in the series; add temporary FIXME commments.
Three will remain; add TODO comments.  TODO, not FIXME, because the
bug might be in Libibverbs documentation.

[*] https://github.com/linux-rdma/rdma-core.git
    commit 55fa316b4b18f258d8ac1ceb4aa5a7a35b094dcf

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-17-armbru@redhat.com>


  Commit: 1b6e1da6e7505f9b152ca2d0be2059eeb7e55708
      
https://github.com/qemu/qemu/commit/1b6e1da6e7505f9b152ca2d0be2059eeb7e55708
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Ditch useless numeric error codes in error messages

Several error messages include numeric error codes returned by failed
functions:

* ibv_poll_cq() returns an unspecified negative value.  Useless.

* rdma_accept and rdma_get_cm_event() return -1.  Useless.

* qemu_rdma_poll() returns either -1 or an unspecified negative
  value.  Useless.

* qemu_rdma_block_for_wrid(), qemu_rdma_write_flush(),
  qemu_rdma_exchange_send(), qemu_rdma_exchange_recv(),
  qemu_rdma_write() return a negative value that may or may not be an
  errno value.  While reporting human-readable errno
  information (which a number is not) can be useful, reporting an
  error code that may or may not be an errno value is useless.

Drop these error codes from the error messages.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-18-armbru@redhat.com>


  Commit: 8e262e0b3d41ade37354cf9fa28bcbba2e273caf
      
https://github.com/qemu/qemu/commit/8e262e0b3d41ade37354cf9fa28bcbba2e273caf
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix io_writev(), io_readv() methods to obey contract

QIOChannelClass methods qio_channel_rdma_readv() and
qio_channel_rdma_writev() violate their method contract when
rdma->error_state is non-zero:

1. They return whatever is in rdma->error_state then.  Only -1 will be
   fine.  -2 will be misinterpreted as "would block".  Anything less
   than -2 isn't defined in the contract.  A positive value would be
   misinterpreted as success, but I believe that's not actually
   possible.

2. They neglect to set an error then.  If something up the call stack
   dereferences the error when failure is returned, it will crash.  If
   it ignores the return value and checks the error instead, it will
   miss the error.

Crap like this happens when return statements hide in macros,
especially when their uses are far away from the definition.

I elected not to investigate how callers are impacted.

Expand the two bad macro uses, so we can set an error and return -1.
The next commit will then get rid of the macro altogether.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-19-armbru@redhat.com>


  Commit: de3e05e8b9c21dd70c34b744d1b14ec5f5707512
      
https://github.com/qemu/qemu/commit/de3e05e8b9c21dd70c34b744d1b14ec5f5707512
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Replace dangerous macro CHECK_ERROR_STATE()

Hiding return statements in macros is a bad idea.  Use a function
instead, and open code the return part.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-20-armbru@redhat.com>


  Commit: 142bd685ae10e1354b579a92db02c473f57080f0
      
https://github.com/qemu/qemu/commit/142bd685ae10e1354b579a92db02c473f57080f0
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix qemu_rdma_broken_ipv6_kernel() to set error

qemu_rdma_resolve_host() and qemu_rdma_dest_init() try addresses until
they find on that works.  If none works, they return the first Error
set by qemu_rdma_broken_ipv6_kernel(), or else return a generic one.

qemu_rdma_broken_ipv6_kernel() neglects to set an Error when
ibv_open_device() fails.  If a later address fails differently, we use
that Error instead, or else the generic one.  Harmless enough, but
needs fixing all the same.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-21-armbru@redhat.com>


  Commit: f35c0d9b0773e3ad143eeaf8d7ef3d4ce85a7e7f
      
https://github.com/qemu/qemu/commit/f35c0d9b0773e3ad143eeaf8d7ef3d4ce85a7e7f
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix qemu_get_cm_event_timeout() to always set error

qemu_get_cm_event_timeout() neglects to set an error when it fails
because rdma_get_cm_event() fails.  Harmless, as its caller
qemu_rdma_connect() substitutes a generic error then.  Fix it anyway.

qemu_rdma_connect() also sets the generic error when its own call of
rdma_get_cm_event() fails.  Make the error handling more obvious: set
a specific error right after rdma_get_cm_event() fails.  Delete the
generic error.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-22-armbru@redhat.com>


  Commit: d63f4016b1d154e9ab62e849e6fbb6ded344bcb2
      
https://github.com/qemu/qemu/commit/d63f4016b1d154e9ab62e849e6fbb6ded344bcb2
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Drop dead qemu_rdma_data_init() code for !@host_port

qemu_rdma_data_init() neglects to set an Error when it fails because
@host_port is null.  Fortunately, no caller passes null, so this is
merely a latent bug.  Drop the flawed code handling null argument.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-23-armbru@redhat.com>


  Commit: 0110c6b86a828c9c2f42fbed4fc0da30ad7bf6eb
      
https://github.com/qemu/qemu/commit/0110c6b86a828c9c2f42fbed4fc0da30ad7bf6eb
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix QEMUFileHooks method return values

The QEMUFileHooks methods don't come with a written contract.  Digging
through the code calling them, we find:

* save_page():

  Negative values RAM_SAVE_CONTROL_DELAYED and
  RAM_SAVE_CONTROL_NOT_SUPP are special.  Any other negative value is
  an unspecified error.

  qemu_rdma_save_page() returns -EIO or rdma->error_state on error.  I
  believe the latter is always negative.  Nothing stops either of them
  to clash with the special values, though.  Feels unlikely, but fix
  it anyway to return only the special values and -1.

* before_ram_iterate(), after_ram_iterate():

  Negative value means error.  qemu_rdma_registration_start() and
  qemu_rdma_registration_stop() comply as far as I can tell.  Make
  them comply *obviously*, by returning -1 on error.

* hook_ram_load:

  Negative value means error.  rdma_load_hook() already returns -1 on
  error.  Leave it alone.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-24-armbru@redhat.com>


  Commit: 07249822212ec56484ecfb5594d2ec94c84961fa
      
https://github.com/qemu/qemu/commit/07249822212ec56484ecfb5594d2ec94c84961fa
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix rdma_getaddrinfo() error checking

rdma_getaddrinfo() returns 0 on success.  On error, it returns one of
the EAI_ error codes like getaddrinfo() does, or -1 with errno set.
This is broken by design: POSIX implicitly specifies the EAI_ error
codes to be non-zero, no more.  They could clash with -1.  Nothing we
can do about this design flaw.

Both callers of rdma_getaddrinfo() only recognize negative values as
error.  Works only because systems elect to make the EAI_ error codes
negative.

Best not to rely on that: change the callers to treat any non-zero
value as failure.  Also change them to return -1 instead of the value
received from getaddrinfo() on failure, to avoid positive error
values.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-25-armbru@redhat.com>


  Commit: 8c6513f75048e6cc55d9e6db2c2e0e7b02a166bc
      
https://github.com/qemu/qemu/commit/8c6513f75048e6cc55d9e6db2c2e0e7b02a166bc
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Return -1 instead of negative errno code

Several functions return negative errno codes on failure.  Callers
check for specific codes exactly never.  For some of the functions,
callers couldn't check even if they wanted to, because the functions
also return negative values that aren't errno codes, leaving readers
confused on what the function actually returns.

Clean up and simplify: return -1 instead of negative errno code.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-26-armbru@redhat.com>


  Commit: ec486974539d84bf04bc65dfda1844accfcb6c28
      
https://github.com/qemu/qemu/commit/ec486974539d84bf04bc65dfda1844accfcb6c28
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Dumb down remaining int error values to -1

This is just to make the error value more obvious.  Callers don't
mind.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-27-armbru@redhat.com>


  Commit: b86c94a49ea54653015edcc5f32603abbf2aa556
      
https://github.com/qemu/qemu/commit/b86c94a49ea54653015edcc5f32603abbf2aa556
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Replace int error_state by bool errored

All we do with the value of RDMAContext member @error_state is test
whether it's zero.  Change to bool and rename to @errored.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-28-armbru@redhat.com>


  Commit: c0d77702d2e787053d2b139e07220208d6e635c6
      
https://github.com/qemu/qemu/commit/c0d77702d2e787053d2b139e07220208d6e635c6
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Drop superfluous assignments to @ret

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-29-armbru@redhat.com>


  Commit: 4a1021796252598957876a530c8d5d2ed7fd693e
      
https://github.com/qemu/qemu/commit/4a1021796252598957876a530c8d5d2ed7fd693e
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Check negative error values the same way everywhere

When a function returns 0 on success, negative value on error,
checking for non-zero suffices, but checking for negative is clearer.
So do that.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-30-armbru@redhat.com>


  Commit: e518b0050d41adf764aa06373acf0fbd696b8a0e
      
https://github.com/qemu/qemu/commit/e518b0050d41adf764aa06373acf0fbd696b8a0e
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Plug a memory leak and improve a message

When migration capability @rdma-pin-all is true, but the server cannot
honor it, qemu_rdma_connect() calls macro ERROR(), then returns
success.

ERROR() sets an error.  Since qemu_rdma_connect() returns success, its
caller rdma_start_outgoing_migration() duly assumes @errp is still
clear.  The Error object leaks.

ERROR() additionally reports the situation to the user as an error:

    RDMA ERROR: Server cannot support pinning all memory. Will register memory 
dynamically.

Is this an error or not?  It actually isn't; we disable @rdma-pin-all
and carry on.  "Correcting" the user's configuration decisions that
way feels problematic, but that's a topic for another day.

Replace ERROR() by warn_report().  This plugs the memory leak, and
emits a clearer message to the user.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-31-armbru@redhat.com>


  Commit: 1718f238d1ee3c40496a36d6e4dc88ad21a04896
      
https://github.com/qemu/qemu/commit/1718f238d1ee3c40496a36d6e4dc88ad21a04896
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Delete inappropriate error_report() in macro ERROR()

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

Macro ERROR() violates this principle.  Delete the error_report()
there.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Tested-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-32-armbru@redhat.com>


  Commit: 8fd471bd777d70dce7826c2b903e0e791ead764e
      
https://github.com/qemu/qemu/commit/8fd471bd777d70dce7826c2b903e0e791ead764e
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Retire macro ERROR()

ERROR() has become "error_setg() unless an error has been set
already".  Hiding the conditional in the macro is in the way of
further work.  Replace the macro uses by their expansion, and delete
the macro.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-33-armbru@redhat.com>


  Commit: 071d5ae4f35c4d4b80553feaa3786b9ff7a32b02
      
https://github.com/qemu/qemu/commit/071d5ae4f35c4d4b80553feaa3786b9ff7a32b02
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Fix error handling around rdma_getaddrinfo()

qemu_rdma_resolve_host() and qemu_rdma_dest_init() iterate over
addresses to find one that works, holding onto the first Error from
qemu_rdma_broken_ipv6_kernel() for use when no address works.  Issues:

1. If @errp was &error_abort or &error_fatal, we'd terminate instead
   of trying the next address.  Can't actually happen, since no caller
   passes these arguments.

2. When @errp is a pointer to a variable containing NULL, and
   qemu_rdma_broken_ipv6_kernel() fails, the variable no longer
   contains NULL.  Subsequent iterations pass it again, violating
   Error usage rules.  Dangerous, as setting an error would then trip
   error_setv()'s assertion.  Works only because
   qemu_rdma_broken_ipv6_kernel() and the code following the loops
   carefully avoids setting a second error.

3. If qemu_rdma_broken_ipv6_kernel() fails, and then a later iteration
   finds a working address, @errp still holds the first error from
   qemu_rdma_broken_ipv6_kernel().  If we then run into another error,
   we report the qemu_rdma_broken_ipv6_kernel() failure instead.

4. If we don't run into another error, we leak the Error object.

Use a local error variable, and propagate to @errp.  This fixes 3. and
also cleans up 1 and partly 2.

Free this error when we have a working address.  This fixes 4.

Pass the local error variable to qemu_rdma_broken_ipv6_kernel() only
until it fails.  Pass null on any later iterations.  This cleans up
the remainder of 2.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-34-armbru@redhat.com>


  Commit: dcf07e72a4c929a06a5735e80b429f49b2278b9f
      
https://github.com/qemu/qemu/commit/dcf07e72a4c929a06a5735e80b429f49b2278b9f
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Drop "@errp is clear" guards around error_setg()

These guards are all redundant now.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-35-armbru@redhat.com>


  Commit: 96f363d839f5fdae370afb9a9f843782dd1b38f8
      
https://github.com/qemu/qemu/commit/96f363d839f5fdae370afb9a9f843782dd1b38f8
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_exchange_recv() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qio_channel_rdma_readv() violates this principle: it calls
error_report() via qemu_rdma_exchange_recv().  I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.

Clean this up by converting qemu_rdma_exchange_recv() to Error.

Necessitates setting an error when qemu_rdma_exchange_get_response()
failed.  Since this error will go away later in this series, simply
use "FIXME temporary error message" there.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-36-armbru@redhat.com>


  Commit: c4c78dce0b5ebf28c2b54a79905e44f47544aeee
      
https://github.com/qemu/qemu/commit/c4c78dce0b5ebf28c2b54a79905e44f47544aeee
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_exchange_send() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qio_channel_rdma_writev() violates this principle: it calls
error_report() via qemu_rdma_exchange_send().  I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.

Clean this up by converting qemu_rdma_exchange_send() to Error.

Necessitates setting an error when qemu_rdma_post_recv_control(),
callback(), or qemu_rdma_exchange_get_response() failed.  Since these
errors will go away later in this series, simply use "FIXME temporary
error message" there.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-37-armbru@redhat.com>


  Commit: 3765ec1f432065e451fe86c54b93fc19a49f0cf4
      
https://github.com/qemu/qemu/commit/3765ec1f432065e451fe86c54b93fc19a49f0cf4
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_exchange_get_response() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_exchange_send() and qemu_rdma_exchange_recv() violate this
principle: they call error_report() via
qemu_rdma_exchange_get_response().  I elected not to investigate how
callers handle the error, i.e. precise impact is not known.

Clean this up by converting qemu_rdma_exchange_get_response() to
Error.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-38-armbru@redhat.com>


  Commit: de1aa35f8dbb9666360648148e57ceacb1bf8b5b
      
https://github.com/qemu/qemu/commit/de1aa35f8dbb9666360648148e57ceacb1bf8b5b
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_reg_whole_ram_blocks() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_exchange_send() violates this principle: it calls
error_report() via callback qemu_rdma_reg_whole_ram_blocks().  I
elected not to investigate how callers handle the error, i.e. precise
impact is not known.

Clean this up by converting the callback to Error.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-39-armbru@redhat.com>


  Commit: 56095477812860325295609fbeaf15741e01f53c
      
https://github.com/qemu/qemu/commit/56095477812860325295609fbeaf15741e01f53c
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_write_flush() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qio_channel_rdma_writev() violates this principle: it calls
error_report() via qemu_rdma_write_flush().  I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.

Clean this up by converting qemu_rdma_write_flush() to Error.

Necessitates setting an error when qemu_rdma_write_one() failed.
Since this error will go away later in this series, simply use "FIXME
temporary error message" there.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-40-armbru@redhat.com>


  Commit: 557c34ca60d863047320a178ebcd06ba8d30c057
      
https://github.com/qemu/qemu/commit/557c34ca60d863047320a178ebcd06ba8d30c057
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_write_one() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_write_flush() violates this principle: it calls
error_report() via qemu_rdma_write_one().  I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.

Clean this up by converting qemu_rdma_write_one() to Error.  Bonus:
resolves a FIXME about problematic use of errno.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-41-armbru@redhat.com>


  Commit: 446e559c433184b797bf3f3e1b4366c908a4fb6d
      
https://github.com/qemu/qemu/commit/446e559c433184b797bf3f3e1b4366c908a4fb6d
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_write() to Error

Just for consistency with qemu_rdma_write_one() and
qemu_rdma_write_flush(), and for slightly simpler code.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-42-armbru@redhat.com>


  Commit: f3805964f8cd79a534c20dfc95ed3000145a5d82
      
https://github.com/qemu/qemu/commit/f3805964f8cd79a534c20dfc95ed3000145a5d82
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_post_send_control() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_exchange_send() violates this principle: it calls
error_report() via qemu_rdma_post_send_control().  I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.

Clean this up by converting qemu_rdma_post_send_control() to Error.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-43-armbru@redhat.com>


  Commit: 3c0c3eba8d9279249b451ff9d9a14e3f8a14bba8
      
https://github.com/qemu/qemu/commit/3c0c3eba8d9279249b451ff9d9a14e3f8a14bba8
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_post_recv_control() to Error

Just for symmetry with qemu_rdma_post_send_control().  Error messages
lose detail I consider of no use to users.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-44-armbru@redhat.com>


  Commit: 07d5b946539694e8a91b0153514c126649d2da3e
      
https://github.com/qemu/qemu/commit/07d5b946539694e8a91b0153514c126649d2da3e
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Convert qemu_rdma_alloc_pd_cq() to Error

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_source_init() violates this principle: it calls
error_report() via qemu_rdma_alloc_pd_cq().  I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.

Clean this up by converting qemu_rdma_alloc_pd_cq() to Error.

The conversion loses a piece of advice on one of two failure paths:

    Your mlock() limits may be too low. Please check $ ulimit -a # and search 
for 'ulimit -l' in the output

Not worth retaining.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-45-armbru@redhat.com>


  Commit: e6696d3ee9b8a0632dd12b20081ebd21bb7b646d
      
https://github.com/qemu/qemu/commit/e6696d3ee9b8a0632dd12b20081ebd21bb7b646d
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Silence qemu_rdma_resolve_host()

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_resolve_host() violates this principle: it calls
error_report().

Clean this up: drop error_report().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-46-armbru@redhat.com>


  Commit: 35b1561e3ec56fc3cae283d1b00053be6445a2db
      
https://github.com/qemu/qemu/commit/35b1561e3ec56fc3cae283d1b00053be6445a2db
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Silence qemu_rdma_connect()

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_connect() violates this principle: it calls error_report()
and perror().  I elected not to investigate how callers handle the
error, i.e. precise impact is not known.

Clean this up: replace perror() by changing error_setg() to
error_setg_errno(), and drop error_report().  I believe the callers'
error reports suffice then.  If they don't, we need to convert to
Error instead.

Bonus: resolves a FIXME about problematic use of errno.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-47-armbru@redhat.com>


  Commit: 01efb106373551e92efde579b16c1b8aa4ee9354
      
https://github.com/qemu/qemu/commit/01efb106373551e92efde579b16c1b8aa4ee9354
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Silence qemu_rdma_reg_control()

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_source_init() and qemu_rdma_accept() violate this principle:
they call error_report() via qemu_rdma_reg_control().  I elected not
to investigate how callers handle the error, i.e. precise impact is
not known.

Clean this up by dropping the error reporting from
qemu_rdma_reg_control().  I believe the callers' error reports
suffice.  If they don't, we need to convert to Error instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-48-armbru@redhat.com>


  Commit: 8dee156c1d60fd386bf19ac6bbccc04ef56a9f02
      
https://github.com/qemu/qemu/commit/8dee156c1d60fd386bf19ac6bbccc04ef56a9f02
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Don't report received completion events as error

When qemu_rdma_wait_comp_channel() receives an event from the
completion channel, it reports an error "receive cm event while wait
comp channel,cm event is T", where T is the numeric event type.
However, the function fails only when T is a disconnect or device
removal.  Events other than these two are not actually an error, and
reporting them as an error is wrong.  If we need to report them to the
user, we should use something else, and what to use depends on why we
need to report them to the user.

For now, report this error only when the function actually fails.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-49-armbru@redhat.com>


  Commit: 7555c7713d4bf03caa610ed2d2df481c2150b044
      
https://github.com/qemu/qemu/commit/7555c7713d4bf03caa610ed2d2df481c2150b044
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Silence qemu_rdma_block_for_wrid()

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_post_send_control(), qemu_rdma_exchange_get_response(), and
qemu_rdma_write_one() violate this principle: they call
error_report(), fprintf(stderr, ...), and perror() via
qemu_rdma_block_for_wrid(), qemu_rdma_poll(), and
qemu_rdma_wait_comp_channel().  I elected not to investigate how
callers handle the error, i.e. precise impact is not known.

Clean this up by dropping the error reporting from qemu_rdma_poll(),
qemu_rdma_wait_comp_channel(), and qemu_rdma_block_for_wrid().  I
believe the callers' error reports suffice.  If they don't, we need to
convert to Error instead.

Bonus: resolves a FIXME about problematic use of errno.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-50-armbru@redhat.com>


  Commit: b765d21e4aba49dc5c87f3b05532b6b9cc64a2a5
      
https://github.com/qemu/qemu/commit/b765d21e4aba49dc5c87f3b05532b6b9cc64a2a5
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Silence qemu_rdma_register_and_get_keys()

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_write_one() violates this principle: it reports errors to
stderr via qemu_rdma_register_and_get_keys().  I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.

Clean this up: silence qemu_rdma_register_and_get_keys().  I believe
the caller's error reports suffice.  If they don't, we need to convert
to Error instead.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-51-armbru@redhat.com>


  Commit: 5cec563d0cc4d2ce4983f31c472f022f9fd57d7a
      
https://github.com/qemu/qemu/commit/5cec563d0cc4d2ce4983f31c472f022f9fd57d7a
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Downgrade qemu_rdma_cleanup() errors to warnings

Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job.  When the caller does, the error is reported twice.  When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.

qemu_rdma_source_init(), qemu_rdma_connect(),
rdma_start_incoming_migration(), and rdma_start_outgoing_migration()
violate this principle: they call error_report() via
qemu_rdma_cleanup().

Moreover, qemu_rdma_cleanup() can't fail.  It is called on error
paths, and QIOChannel close and finalization.  Are the conditions it
reports really errors?  I doubt it.

Downgrade qemu_rdma_cleanup()'s errors to warnings.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-52-armbru@redhat.com>


  Commit: ff4c9194599fff94164e0ffa4b5da968973d0523
      
https://github.com/qemu/qemu/commit/ff4c9194599fff94164e0ffa4b5da968973d0523
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c

  Log Message:
  -----------
  migration/rdma: Use error_report() & friends instead of stderr

error_report() obeys -msg, reports the current error location if any,
and reports to the current monitor if any.  Reporting to stderr
directly with fprintf() or perror() is wrong, because it loses all
this.

Fix the offenders.  Bonus: resolves a FIXME about problematic use of
errno.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-53-armbru@redhat.com>


  Commit: 2c88739cfd6f8b499c60e1384507e011721ae467
      
https://github.com/qemu/qemu/commit/2c88739cfd6f8b499c60e1384507e011721ae467
  Author: Markus Armbruster <armbru@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/rdma.c
    M migration/trace-events

  Log Message:
  -----------
  migration/rdma: Replace flawed device detail dump by tracing

qemu_rdma_dump_id() dumps RDMA device details to stdout.

rdma_start_outgoing_migration() calls it via qemu_rdma_source_init()
and qemu_rdma_resolve_host() to show source device details.
rdma_start_incoming_migration() arranges its call via
rdma_accept_incoming_migration() and qemu_rdma_accept() to show
destination device details.

Two issues:

1. rdma_start_outgoing_migration() can run in HMP context.  The
   information should arguably go the monitor, not stdout.

2. ibv_query_port() failure is reported as error.  Its callers remain
   unaware of this failure (qemu_rdma_dump_id() can't fail), so
   reporting this to the user as an error is problematic.

Fixable, but the device detail dump is noise, except when
troubleshooting.  Tracing is a better fit.  Similar function
qemu_rdma_dump_id() was converted to tracing in commit
733252deb8b (Tracify migration/rdma.c).

Convert qemu_rdma_dump_id(), too.

While there, touch up qemu_rdma_dump_gid()'s outdated comment.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-54-armbru@redhat.com>


  Commit: c94143e587875bd70c280d72b1b70d9eefaf6854
      
https://github.com/qemu/qemu/commit/c94143e587875bd70c280d72b1b70d9eefaf6854
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: Display error in query-migrate irrelevant of status

Display it as long as being set, irrelevant of FAILED status.  E.g., it may
also be applicable to PAUSED stage of postcopy, to provide hint on what has
gone wrong.

The error_mutex seems to be overlooked when referencing the error, add it
to be very safe.

This will change QAPI behavior by showing up error message outside !FAILED
status, but it's intended and doesn't expect to break anyone.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2018404
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-2-peterx@redhat.com>


  Commit: 2b2f6f411efa83c70409fa6de2e61ec28221c757
      
https://github.com/qemu/qemu/commit/2b2f6f411efa83c70409fa6de2e61ec28221c757
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/migration.c
    M migration/migration.h

  Log Message:
  -----------
  migration: Introduce migrate_has_error()

Introduce a helper to detect whether MigrationState.error is set for
whatever reason.

This is preparation work for any thread (e.g. source return path thread) to
setup errors in an unified way to MigrationState, rather than relying on
its own way to set errors (mark_source_rp_bad()).

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-3-peterx@redhat.com>


  Commit: f4b897f4854c579cedc4d5ebb6db16c03a1eaeb1
      
https://github.com/qemu/qemu/commit/f4b897f4854c579cedc4d5ebb6db16c03a1eaeb1
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/qemu-file.c

  Log Message:
  -----------
  qemufile: Always return a verbose error

There're a lot of cases where we only have an errno set in last_error but
without a detailed error description.  When this happens, try to generate
an error contains the errno as a descriptive error.

This will be helpful in cases where one relies on the Error*.  E.g.,
migration state only caches Error* in MigrationState.error.  With this,
we'll display correct error messages in e.g. query-migrate when the error
was only set by qemu_file_set_error().

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-6-peterx@redhat.com>


  Commit: 1015ff5476ceed0ff76156c1b60e76f9d21db497
      
https://github.com/qemu/qemu/commit/1015ff5476ceed0ff76156c1b60e76f9d21db497
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Remember num of ramblocks to sync during recovery

Instead of only relying on the count of rp_sem, make the counter be part of
RAMState so it can be used in both threads to synchronize on the process.

rp_sem will be further reused in follow up patches, as a way to kick the
main thread, e.g., on recovery failures.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-7-peterx@redhat.com>


  Commit: 5e79a4bf032213fd59aa614781751fe76584f8e8
      
https://github.com/qemu/qemu/commit/5e79a4bf032213fd59aa614781751fe76584f8e8
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/ram.c

  Log Message:
  -----------
  migration: Add migration_rp_wait|kick()

It's just a simple wrapper for rp_sem on either wait() or kick(), make it
even clearer on how it is used.  Prepared to be used even for other things.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-ID: <20231004220240.167175-8-peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 67d2486c0ea4b9408854371dc7741f3c223ddb25
      
https://github.com/qemu/qemu/commit/67d2486c0ea4b9408854371dc7741f3c223ddb25
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M hw/audio/es1370.c
    M hw/audio/trace-events

  Log Message:
  -----------
  Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu 
into staging

Audio es1370 fix & cleanups

# -----BEGIN PGP SIGNATURE-----
#
# iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmUmQIQcHG1hcmNhbmRy
# ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5UiED/0VjK4J6I+MYljyJePj
# ki62XC/dtojuxkE+nwsTrU54u86776TLmthRYyHOffSs8mDpk0ynY6sWD99T4r1b
# 9Szmm9FJM658RSpN9i128JAiHKD9Vth7UUpekrLIBgRsW5lGuQFapHouTB1wa3hm
# 8ZszUNAGEpAgGM2My9t+pvGy8lrOZan2ZAlQzKfMc+msYTnivK6huzjVw/xUc0kD
# vzfpVMgKntvl391IBf9hFBBrJCWRtDrydtPl1/PxpVj/96FGIxlx+o30X8z9hSzA
# yg96XfwmS/mgqFsw8QqtFyrkSE3iD2yzcrepjtK+erwcv6M0BVG38wn89F571Lcl
# Ga8PcqBd7pP0nMXrgjbX8qB6t58TPipEbFMeS2iabO4pwz0jy9aCVQJ2GZqHNqaF
# VoMN5hEDBhanxFcNEcjSWZEfJOvK7uVLAZ2Xdqcrsm50ESTu55H/BIQWFipTGlqu
# +BlvfpwVYXGziuDsj8h4cUGvyuMY02XWsBU9qvl5aCiyWoyED0ZlR2UJ0jVjn68K
# RUbTrxSMF9hLgI1j8FYkNgXMBuR4+Sopc7vp//AXpp92/yxTNCbe44Y06C9iaib1
# 0zrYhd4rfTn0MX+YM9IUKzvoNSVY6VxHoTucyTM9HcT7XtCnmwnMzjY4yGxQ6k3V
# X0WBPpH4mCyXla7TJ0zwbnvH0A==
# =B/KL
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 11 Oct 2023 02:28:20 EDT
# gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
# gpg:                issuer "marcandre.lureau@redhat.com"
# gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" 
[full]
# gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>" 
[full]
# Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5

* tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu:
  hw/audio/es1370: trace lost interrupts
  hw/audio/es1370: change variable type and name
  hw/audio/es1370: block structure coding style fixes
  hw/audio/es1370: remove #ifdef ES1370_VERBOSE to avoid bit rot
  hw/audio/es1370: remove #ifdef ES1370_DEBUG to avoid bit rot
  hw/audio/es1370: remove unused dolog macro
  hw/audio/es1370: replace bit-rotted code with tracepoints
  hw/audio/es1370: reset current sample counter

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 48747938d1b72f492a7921e9b83e9065deb44f14
      
https://github.com/qemu/qemu/commit/48747938d1b72f492a7921e9b83e9065deb44f14
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/options.c
    M migration/qemu-file.c
    M migration/ram.c
    M migration/rdma.c
    M migration/savevm.c
    M migration/trace-events
    M qapi/migration.json
    M tests/qtest/libqtest.c
    M tests/qtest/libqtest.h
    M tests/qtest/meson.build
    M tests/qtest/migration-helpers.c
    M tests/qtest/migration-helpers.h
    M tests/qtest/migration-test.c
    M tests/qtest/virtio-net-failover.c

  Log Message:
  -----------
  Merge tag 'migration-20231011-pull-request' of 
https://gitlab.com/juan.quintela/qemu into staging

Migration Pull request (20231011 edition)

Hi

In this pull request:

- Markus RDMA cleanup series
- recover fixes from peter
- migration capability from fabiano
- negative migration test from fabiano.

Please, pull.

Thanks, Juan.

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmUmaQ8ACgkQ9IfvGFhy
# 1yN9fA//SBnea3Wl2158J673l5aaI8Vp/1PjfzvNdcr/6EQbXZBgug+haQ3n5Hhf
# USNRhemrCkpZAGCUf07g9pfF4R/Jsq1OkOrWF4e6gAaZPNU4V5F7VKBk8pmFMLtr
# Kk2XgnH2ZPaFEvts0qBrOfvDHH8gOzzjpF2HGrioM8Zr3p1JHz9OqJoSyawLF0U7
# YFTq2jJSgaOQ6ax1+L8hLLuXlmNccBaTWT8Cv0rbPEgcwrJOM/wMfmd6O39ps929
# yS5NnxqqkrprTDjmeGOgOQd0Cy/flinnzmu+BVMO6/ns9Hu6q1TGG6D+DOBdgmHH
# jq7Ej5VILtXWOoZtXLHqA1Xt73ciVlmditVupoC+5vtIJou2JseClutOp98qxxzV
# llMF7ldHbRTWnu7qIrwv2OINarowR0pIZfkJqBc6dNHHScwMCnX5L9YAvNePEo2V
# 1oJpbqW7mmgwdlFAiKFD+AE6qUWxcnzOvPf+fzWrJMi507Kv5nmxQWTHw9dsFs7k
# neWnK21t0s2t77+vVBtLlr06JESG+WndzvQsXKZu8Pd0+ASnzpX8pRVzxEPk5EiH
# fT9bhXOCvxTTHulznjkOApODE5NF+KlHAFXU87cSIkdi/6JfzcvTe6KeeIPC248Q
# jk3nVlhds1xajTcPAK7HF5Ta6R8rNdTZ6q/kFNhLaTGqv9agxDU=
# =hekO
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 11 Oct 2023 05:21:19 EDT
# gpg:                using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full]
# gpg:                 aka "Juan Quintela <quintela@trasno.org>" [full]
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* tag 'migration-20231011-pull-request' of 
https://gitlab.com/juan.quintela/qemu: (65 commits)
  migration: Add migration_rp_wait|kick()
  migration: Remember num of ramblocks to sync during recovery
  qemufile: Always return a verbose error
  migration: Introduce migrate_has_error()
  migration: Display error in query-migrate irrelevant of status
  migration/rdma: Replace flawed device detail dump by tracing
  migration/rdma: Use error_report() & friends instead of stderr
  migration/rdma: Downgrade qemu_rdma_cleanup() errors to warnings
  migration/rdma: Silence qemu_rdma_register_and_get_keys()
  migration/rdma: Silence qemu_rdma_block_for_wrid()
  migration/rdma: Don't report received completion events as error
  migration/rdma: Silence qemu_rdma_reg_control()
  migration/rdma: Silence qemu_rdma_connect()
  migration/rdma: Silence qemu_rdma_resolve_host()
  migration/rdma: Convert qemu_rdma_alloc_pd_cq() to Error
  migration/rdma: Convert qemu_rdma_post_recv_control() to Error
  migration/rdma: Convert qemu_rdma_post_send_control() to Error
  migration/rdma: Convert qemu_rdma_write() to Error
  migration/rdma: Convert qemu_rdma_write_one() to Error
  migration/rdma: Convert qemu_rdma_write_flush() to Error
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: a51e5124a655b3dad80b36b18547cb1eca2c5eb2
      
https://github.com/qemu/qemu/commit/a51e5124a655b3dad80b36b18547cb1eca2c5eb2
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-11 (Wed, 11 Oct 2023)

  Changed paths:
    M .gitlab-ci.d/buildtest.yml
    M .gitlab-ci.d/cirrus/macos-12.vars
    M MAINTAINERS
    M accel/tcg/plugin-gen.c
    M accel/tcg/translator.c
    M configure
    M contrib/plugins/cache.c
    M contrib/plugins/execlog.c
    M contrib/plugins/hotblocks.c
    M contrib/plugins/lockstep.c
    M gdbstub/gdbstub.c
    M gdbstub/internals.h
    M gdbstub/system.c
    M include/exec/gdbstub.h
    M include/exec/plugin-gen.h
    M include/exec/translator.h
    M include/hw/core/cpu.h
    M meson.build
    M plugins/core.c
    A scripts/feature_to_c.py
    R scripts/feature_to_c.sh
    M stubs/gdbstub.c
    M target/arm/cpu.c
    M target/arm/cpu64.c
    M target/arm/gdbstub.c
    M target/i386/cpu.c
    M target/loongarch/cpu.c
    M target/ppc/gdbstub.c
    M target/ppc/internal.h
    M target/riscv/cpu.c
    M target/s390x/cpu.c
    M target/sh4/translate.c
    M target/tricore/cpu.c
    M tests/avocado/machine_aarch64_sbsaref.py
    M tests/docker/Makefile.include
    M tests/docker/dockerfiles/alpine.docker
    M tests/docker/dockerfiles/centos8.docker
    M tests/docker/dockerfiles/debian-amd64-cross.docker
    M tests/docker/dockerfiles/debian-amd64.docker
    M tests/docker/dockerfiles/debian-arm64-cross.docker
    M tests/docker/dockerfiles/debian-armhf-cross.docker
    M tests/docker/dockerfiles/debian-ppc64el-cross.docker
    M tests/docker/dockerfiles/debian-s390x-cross.docker
    M tests/docker/dockerfiles/fedora-win32-cross.docker
    M tests/docker/dockerfiles/fedora-win64-cross.docker
    M tests/docker/dockerfiles/fedora.docker
    M tests/docker/dockerfiles/opensuse-leap.docker
    M tests/docker/dockerfiles/ubuntu2204.docker
    M tests/lcitool/libvirt-ci
    M tests/lcitool/projects/qemu.yml

  Log Message:
  -----------
  Merge tag 'pull-omnibus-111023-1' of https://gitlab.com/stsquad/qemu into 
staging

testing, gdbstub and plugin updates

  - enable more sbsa-ref tests in avocado
  - add swtpm to the package lists
  - reduce avocado noise in gitlab by limiting tests
  - make docker engine choice driven by configure and enable override
  - remove unneeded gcc suffix on some cross compilers
  - fix some NULL returns in gdbstub
  - improve locking in execlog plugin
  - introduce the GDBFeature structure
  - consistently set gdb_core_xml_file
  - use cleaner escaping for gdb xml
  - drop ancient gdb_has_xml() test
  - disable multi-instruction GUSA emulation when plugins enabled
  - fix some coverity issues in plugins

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmUmVJkACgkQ+9DbCVqe
# KkTfNggAiS02FcL3faGjAN9+60xhvEQ3DJjI473hjvFWu0bSkQTjObcQqGc+V7Cw
# 9yNtnxOOWB6KdAU8At7HlVqiUXeyTCJB7Att5/UgNUZj63j+cs7PXb4p7cVCcJOc
# 17zni22tnmCBcC8wZaz0yj68jaftL3hz1QNUZOmv6CBt42q0+/4g1WKfaJ+w+SbK
# T7cJEiMDObm8qeNAAXpDLB+9v3bRDxMZ8hFJ3p3CatQC8jbDrkuH7RrVPHDWiWQx
# w0uXpUHlZEOVX23v6+iIoeb8YQW2bZI9UsfeyIHJlENaVgyL200LHgLvvAE4Qd63
# dCtfQUZzj4t9sfoL4XgxaB7G4qtXTg==
# =7PLI
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 11 Oct 2023 03:54:01 EDT
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) 
<alex.bennee@linaro.org>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* tag 'pull-omnibus-111023-1' of https://gitlab.com/stsquad/qemu: (25 commits)
  contrib/plugins: fix coverity warning in hotblocks
  contrib/plugins: fix coverity warning in lockstep
  contrib/plugins: fix coverity warning in cache
  plugins: Set final instruction count in plugin_gen_tb_end
  target/sh4: Disable decode_gusa when plugins enabled
  accel/tcg: Add plugin_enabled to DisasContextBase
  gdbstub: Replace gdb_regs with an array
  gdbstub: Remove gdb_has_xml variable
  target/ppc: Remove references to gdb_has_xml
  target/arm: Remove references to gdb_has_xml
  gdbstub: Use g_markup_printf_escaped()
  hw/core/cpu: Return static value with gdb_arch_name()
  target/arm: Move the reference to arm-core.xml
  gdbstub: Introduce GDBFeature structure
  contrib/plugins: Use GRWLock in execlog
  plugins: Check if vCPU is realized
  gdbstub: Fix target.xml response
  gdbstub: Fix target_xml initialization
  configure: remove gcc version suffixes
  configure: allow user to override docker engine
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


Compare: https://github.com/qemu/qemu/compare/0ad0d9dcd16f...a51e5124a655



reply via email to

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