Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 094fd7d36f2a7d3c9fb22254888fe7b99b39631b
      
https://github.com/qemu/qemu/commit/094fd7d36f2a7d3c9fb22254888fe7b99b39631b
  Author: Bernhard Beschow <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M docs/system/arm/imx8mp-evk.rst
    M hw/arm/Kconfig
    M hw/arm/fsl-imx8mp.c
    M hw/arm/imx8mp-evk.c

  Log Message:
  -----------
  hw/arm/imx8mp-evk: Add KVM support

Allows the imx8mp-evk machine to run guests with KVM acceleration.

Signed-off-by: Bernhard Beschow <[email protected]>
Message-id: [email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 74bc6caea92de3cf6a6772d0d248a9e26aea2dd3
      
https://github.com/qemu/qemu/commit/74bc6caea92de3cf6a6772d0d248a9e26aea2dd3
  Author: Bernhard Beschow <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M hw/arm/imx8mp-evk.c

  Log Message:
  -----------
  hw/arm/imx8mp-evk: Fix guest time in KVM mode

The imx8mp DTB hardcodes the clock frequency of the system counter to 8MHz.
In KVM mode, the host CPU is used whose system counter runs at a different
frequency, resulting in the guest clock running slower or faster. Fix this
by not hardcoding the clock frequency which makes the Linux driver read
the real clock frequency from the register.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Bernhard Beschow <[email protected]>
Message-id: [email protected]
Signed-off-by: Peter Maydell <[email protected]>


  Commit: 5848d2c3a6c4cc1b37234db462b1b36bc0a18bf4
      
https://github.com/qemu/qemu/commit/5848d2c3a6c4cc1b37234db462b1b36bc0a18bf4
  Author: Peter Maydell <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M docs/devel/testing/fuzzing.rst

  Log Message:
  -----------
  docs/devel/testing/fuzzing: Note that you can get qtest to read from a file

It is possible to get qtest to read fuzzer reproducers from a file
rather than directly from stdio; this is useful when you want to run
QEMU under gdb to debug the failure.  Document how to do this, which
was previously only written down in the commit message for
5b18a6bf44b9 ("chardev: Allow setting file chardev input file on the
command line").

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Reviewed-by: Manos Pitsidianakis <[email protected]>
Message-id: [email protected]


  Commit: 112b55f0b012d00a50befc8e1aa4abe350f00b01
      
https://github.com/qemu/qemu/commit/112b55f0b012d00a50befc8e1aa4abe350f00b01
  Author: Fabiano Rosas <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

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

  Log Message:
  -----------
  migration/savevm: Add a compatibility check for capabilities

It has always been possible to enable arbitrary migration capabilities
and attempt to take a snapshot of the VM with the savevm/loadvm
commands as well as their QMP counterparts
snapshot-save/snapshot-load.

Most migration capabilities are not meant to be used with snapshots
and there's a risk of crashing QEMU or producing incorrect
behavior. Ideally, every migration capability would either be
implemented for savevm or explicitly rejected.

Add a compatibility check routine and reject the snapshot command if
an incompatible capability is enabled. For now only act on the the two
that actually cause a crash: multifd and mapped-ram.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2881
Signed-off-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 1a4922a96174c2c4e07d9d4f15bde3500e1520a4
      
https://github.com/qemu/qemu/commit/1a4922a96174c2c4e07d9d4f15bde3500e1520a4
  Author: Steve Sistare <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: update cpr reviewers

Update cpr reviewers.  Some of these files overlap with migration
files, but some do not.

Signed-off-by: Steve Sistare <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: e5423828d69e90a8fc9db90d8a0d7cf916370fe0
      
https://github.com/qemu/qemu/commit/e5423828d69e90a8fc9db90d8a0d7cf916370fe0
  Author: Marco Cavenati <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/ram: fix docs of ram_handle_zero

Remove outdated 'ch' parameter from the function documentation.

Signed-off-by: Marco Cavenati <[email protected]>
Reviewed-by: Juraj Marcin <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 04a191cb36e71f4bb44d28af2b56b9624b36b0a1
      
https://github.com/qemu/qemu/commit/04a191cb36e71f4bb44d28af2b56b9624b36b0a1
  Author: Marco Cavenati <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/channel-block.c

  Log Message:
  -----------
  migration: add FEATURE_SEEKABLE to QIOChannelBlock

Enable the use of the mapped-ram migration feature with savevm/loadvm
snapshots by adding the QIO_CHANNEL_FEATURE_SEEKABLE feature to
QIOChannelBlock. Implement io_preadv and io_pwritev methods to provide
positioned I/O capabilities that don't modify the channel's position
pointer.

Signed-off-by: Marco Cavenati <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 0ecd28582477e80f867ea776eff34315b048d928
      
https://github.com/qemu/qemu/commit/0ecd28582477e80f867ea776eff34315b048d928
  Author: Marco Cavenati <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

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

  Log Message:
  -----------
  migration: mapped-ram: handle zero pages

Make mapped-ram compatible with loadvm snapshot restoring by explicitly
zeroing memory pages in this case.
Skip zeroing for -incoming and -loadvm migrations to preserve performance.

Signed-off-by: Marco Cavenati <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 346479c304c712f79e7c378ae4a47ca661d1d563
      
https://github.com/qemu/qemu/commit/346479c304c712f79e7c378ae4a47ca661d1d563
  Author: Philippe Mathieu-Daudé <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M include/migration/cpu.h

  Log Message:
  -----------
  migration: Remove unused VMSTATE_UINTTL_EQUAL[_V]() macros

The last use of VMSTATE_UINTTL_EQUAL() was removed in commit
16a2497bd44 ("target-ppc: Fix CPU migration from qemu-2.6 <->
later versions"), 9 years ago; remove it.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 6f190736bfece55593a07fe0e16195221346fc04
      
https://github.com/qemu/qemu/commit/6f190736bfece55593a07fe0e16195221346fc04
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: Fix error leak in postcopy_ram_listen_thread()

As reported and analyzed by Peter:

https://lore.kernel.org/r/cafeaca9otbwtr7rpq0y9abm+7zwjzd4vwpxramgr8xsppn+...@mail.gmail.com

Fix it by freeing the error.  When at it, always reset the local_err
pointer in both paths.

Cc: Arun Menon <[email protected]>
Resolves: Coverity CID 1641390
Fixes: 94272d9b45 ("migration: Capture error in postcopy_ram_listen_thread()")
Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 6a65fdee8a267436f3f18a35619c854bf255d8c1
      
https://github.com/qemu/qemu/commit/6a65fdee8a267436f3f18a35619c854bf255d8c1
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M include/migration/cpr.h
    M migration/cpr-exec.c
    M migration/cpr.c
    M migration/migration.c

  Log Message:
  -----------
  migration/cpr: Fix coverity report in cpr_exec_persist_state()

Per reported and analyzed by Peter:

https://lore.kernel.org/r/CAFEAcA_mUQ2NeoguR5efrhw7XYGofnriWEA=+dg+ocvyam1...@mail.gmail.com

mfd leak is a false positive, try to use a coverity annotation (which I
didn't find manual myself, but still give it a shot).

Fix the other one by capture error if setenv() failed.  When at it, pass
the error to the top (cpr_state_save()).  Along the way, changing all
retval to bool when errp is around.

Resolves: Coverity CID 1641391
Resolves: Coverity CID 1641392
Fixes: efc6587313 ("migration: cpr-exec save and load")
Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 89471ef237ca683c90e9e8d216746b86ba4c1013
      
https://github.com/qemu/qemu/commit/89471ef237ca683c90e9e8d216746b86ba4c1013
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/cpr-exec.c

  Log Message:
  -----------
  migration/cpr: Fix UAF in cpr_exec_cb() when execvp() fails

Per reported and analyzed by Peter:

https://lore.kernel.org/r/CAFEAcA82ih8RVCm-u1oxiS0V2K4rV4jMzNb13pAV=e2ivmi...@mail.gmail.com

Fix the issue by moving the error_setg_errno() earlier.  When at it, clear
argv variable after freed.

Resolves: Coverity CID 1641397
Fixes: a3eae205c6 ("migration: cpr-exec mode")
Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: ded3cf4aaf7af98f56822566cd96f3014fe5508c
      
https://github.com/qemu/qemu/commit/ded3cf4aaf7af98f56822566cd96f3014fe5508c
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration/cpr: Avoid crashing QEMU when cpr-exec runs with no args

If an user invokes cpr-exec without setting the exec args first, currently
it'll crash QEMU.

Avoid it, instead fail the QMP migrate command.

Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 8922a758b29251d9009ec509e7f580b76509ab3d
      
https://github.com/qemu/qemu/commit/8922a758b29251d9009ec509e7f580b76509ab3d
  Author: Chenyi Qiang <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M system/ram-block-attributes.c

  Log Message:
  -----------
  ram-block-attributes: fix interaction with hugetlb memory backends

Currently, CoCo VMs can perform conversion at the base page granularity,
which is the granularity that has to be tracked. In relevant setups, the
target page size is assumed to be equal to the host page size, thus
fixing the block size to the host page size.

However, since private memory and shared memory have different backend
at present, users can specify shared memory with a hugetlbfs backend
while private memory with guest_memfd backend only supports 4K page
size. In this scenario, ram_block->page_size is different from the host
page size which will trigger an assertion when retrieving the block
size.

To address this, return the host page size directly to relax the
restriction. This changes fixes a regression of using hugetlbfs backend
for shared memory within CoCo VMs, with or without VFIO devices' presence.

Acked-by: David Hildenbrand <[email protected]>
Tested-by: Farrah Chen <[email protected]>
Signed-off-by: Chenyi Qiang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[peterx: fix subject, per david]
Cc: qemu-stable <[email protected]>
Signed-off-by: Peter Xu <[email protected]>


  Commit: b2ceb87b1a210d91a29d525590eb164d1121b8a1
      
https://github.com/qemu/qemu/commit/b2ceb87b1a210d91a29d525590eb164d1121b8a1
  Author: Chenyi Qiang <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M system/ram-block-attributes.c

  Log Message:
  -----------
  ram-block-attributes: Unify the retrieval of the block size

There's an existing helper function designed to obtain the block size.
Modify ram_block_attribute_create() to use this function for
consistency.

Tested-by: Farrah Chen <[email protected]>
Signed-off-by: Chenyi Qiang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[peterx: fix double spaces, per david]
Signed-off-by: Peter Xu <[email protected]>


  Commit: ae00f0088ffd1e9ee6a84d79dccea1820ce873ac
      
https://github.com/qemu/qemu/commit/ae00f0088ffd1e9ee6a84d79dccea1820ce873ac
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M qapi/migration.json

  Log Message:
  -----------
  migration/qmp: Update "resume" flag doc in "migrate" command

It wasn't obvious how the resume flag should be used when staring at the
QAPI doc.  Enrich it to be crystal clear.

Reported-by: Markus Armbruster <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[peterx: amended wordings, per markus]
Signed-off-by: Peter Xu <[email protected]>


  Commit: c2a06e8f28a14cfb26cc442269176ae60d1178ef
      
https://github.com/qemu/qemu/commit/c2a06e8f28a14cfb26cc442269176ae60d1178ef
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration-hmp-cmds.c

  Log Message:
  -----------
  migration/cpr: Document obscure usage of g_autofree when parse str

HMP parsing of cpr_exec_command contains an obscure usage of g_autofree.
Provide a document for it to be clear that it's intentional, rather than
memory leaked.

Cc: Dr. David Alan Gilbert <[email protected]>
Reported-by: Peter Maydell <[email protected]>
Reviewed-by: Dr. David Alan Gilbert <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 75e2cb144191ecdbba87cfea3608cdc0664c8142
      
https://github.com/qemu/qemu/commit/75e2cb144191ecdbba87cfea3608cdc0664c8142
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M backends/hostmem-shm.c

  Log Message:
  -----------
  hostmem/shm: Allow shm memory backend serve as shared memory for coco-VMs

shm can surely serve as the shared memory for coco-VMs. But currently it
doesn't check the backend->guest_memfd to pass down the RAM_GUEST_MEMFD
flag. It leads to failure when creating coco-VMs (e.g., TDX guest) which
require private mmeory.

Set and pass down RAM_GUEST_MEMFD when backend->guest_memfd is true, to
allow shm memory backend serve as shared memory for coco-VMs.

Cc: Stefano Garzarella <[email protected]>
Cc: qemu-stable <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Acked-by: David Hildenbrand <[email protected]>
Acked-by: Stefano Garzarella <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 986c3292c6b7dbd12868d06555c82757aaab43b6
      
https://github.com/qemu/qemu/commit/986c3292c6b7dbd12868d06555c82757aaab43b6
  Author: Arun Menon <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M hw/display/virtio-gpu.c
    M hw/pci/pci.c
    M hw/s390x/virtio-ccw.c
    M hw/scsi/spapr_vscsi.c
    M hw/virtio/virtio-mmio.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c

  Log Message:
  -----------
  migration: Fix regression of passing error_fatal into vmstate_load_state()

error_fatal is passed to vmstate_load_state() and vmstate_save_state()
functions. This was introduced in commit c632ffbd74. This would exit(1)
on error, and therefore does not allow to propagate the error back to
the caller.

To maintain consistency with prior error handling i.e. either propagating
the error to the caller or reporting it, we must set the error within a
local Error object instead of using error_fatal.

Reviewed-by: Cornelia Huck <[email protected]>
Signed-off-by: Arun Menon <[email protected]>
Reviewed-by: Akihiko Odaki <[email protected]>
Link: 
https://lore.kernel.org/r/20251028-solve_error_fatal_regression-v2-1-dab24c808...@redhat.com
[peterx: always uninit var ret, per Akihiko]
[peterx: touchups on line ordering, spacings etc.]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 74343a438c796cd1e679db94294c666469a8c4a8
      
https://github.com/qemu/qemu/commit/74343a438c796cd1e679db94294c666469a8c4a8
  Author: Bin Guo <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M hw/intc/arm_gicv3_kvm.c
    M target/i386/sev.c

  Log Message:
  -----------
  migration: Don't free the reason after calling migrate_add_blocker

Function migrate_add_blocker will free the reason and set it to NULL
if failure is returned.

Signed-off-by: Bin Guo <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 75a9f080c2195054cd6f37c75615fc4908283051
      
https://github.com/qemu/qemu/commit/75a9f080c2195054cd6f37c75615fc4908283051
  Author: Markus Armbruster <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: Use unsigned instead of int for bit set of MigMode

Signed operands in bitwise operations are unwise.  I believe they're
safe here, but avoiding them is easy, so let's do that.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 3ca0a0ab05ca4c96c0e6c9cd39c328ffb068b539
      
https://github.com/qemu/qemu/commit/3ca0a0ab05ca4c96c0e6c9cd39c328ffb068b539
  Author: Markus Armbruster <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M hw/vfio/container-legacy.c
    M hw/vfio/cpr-iommufd.c
    M hw/vfio/cpr-legacy.c
    M hw/vfio/cpr.c
    M hw/vfio/device.c
    M include/migration/blocker.h
    M include/migration/misc.h
    M migration/migration.c
    M stubs/migr-blocker.c
    M system/physmem.c

  Log Message:
  -----------
  migration: Use bitset of MigMode instead of variable arguments

migrate_add_blocker_modes() and migration_add_notifier_modes use
variable arguments for a set of migration modes.  The variable
arguments get collected into a bitset for processsing.  Take a bitset
argument instead, it's simpler.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 5777e20718c6e7088b3e1488857b7d7905c36980
      
https://github.com/qemu/qemu/commit/5777e20718c6e7088b3e1488857b7d7905c36980
  Author: Markus Armbruster <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: Put Error **errp parameter last

qapi/error.h's big comment:

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

is_only_migratable() and add_blockers() have it in the middle.  Clean
them up.

Signed-off-by: Markus Armbruster <[email protected]>
Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 1edf0df28409cdf637e5f5ebba515fc63ed4926f
      
https://github.com/qemu/qemu/commit/1edf0df28409cdf637e5f5ebba515fc63ed4926f
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M include/io/channel.h
    M io/channel.c
    M migration/qemu-file.c

  Log Message:
  -----------
  io: Add qio_channel_wait_cond() helper

Add the helper to wait for QIO channel's IO availability in any
context (coroutine, or non-coroutine).  Use it tree-wide for three
occurences.

Cc: Daniel P. Berrangé <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 604bb1badcade5f49264cf8901c2f3a528df305a
      
https://github.com/qemu/qemu/commit/604bb1badcade5f49264cf8901c2f3a528df305a
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/channel.c

  Log Message:
  -----------
  migration: Properly wait on G_IO_IN when peeking messages

migration_channel_read_peek() used to do explicit waits of a short period
when peeking message needs retry.  Replace it with explicit polls on the io
channel, exactly like what qemu_fill_buffer() does.

Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: d4b3a3cc55845685c16d4313ff345c392262d940
      
https://github.com/qemu/qemu/commit/d4b3a3cc55845685c16d4313ff345c392262d940
  Author: Vladimir Sementsov-Ogievskiy <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/vmstate.c

  Log Message:
  -----------
  migration: vmstate_save_state_v(): fix error path

In case of pre_save_errp, on error, we continue processing fields,
unlike case of pre_save, where we return immediately. Behavior
for pre_save_errp case is wrong, we must return here, like for
pre_save.

 "migration: Add error-parameterized function variants in VMSD struct"

Fixes: 40de712a89
Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Stefan Berger <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 3469a56fa3dc98549d87535a80bb4bddfed44936
      
https://github.com/qemu/qemu/commit/3469a56fa3dc98549d87535a80bb4bddfed44936
  Author: Vladimir Sementsov-Ogievskiy <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M backends/tpm/tpm_emulator.c

  Log Message:
  -----------
  tmp_emulator: improve and fix use of errp

tpm_emulator_post_load() and tpm_emulator_set_state_blobs() has
error paths, where they return negative value, but do not set
errp.

To fix that, we also have to convert several other functions to
set errp instead of error_reporting.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 507685984cf04d216661cfd927773fa53123a0a9
      
https://github.com/qemu/qemu/commit/507685984cf04d216661cfd927773fa53123a0a9
  Author: Vladimir Sementsov-Ogievskiy <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/vmstate.c

  Log Message:
  -----------
  migration/vmstate: stop reporting error number for new _errp APIs

The handlers .pre_load_errp, .post_load_errp and .pre_save_errp
should put all needed information into errp, we should not append
error number here.

Note, that there are some more error messages with numeric
error codes in this file. We leave them for another day, our
current goal is to prepare for the following commit, which will
update interface of _errp() APIs.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 8c3843638cbab2da66d3e9e662c03271d3a9490e
      
https://github.com/qemu/qemu/commit/8c3843638cbab2da66d3e9e662c03271d3a9490e
  Author: Vladimir Sementsov-Ogievskiy <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M backends/tpm/tpm_emulator.c
    M docs/devel/migration/main.rst
    M include/migration/vmstate.h
    M migration/vmstate.c

  Log Message:
  -----------
  migration: vmsd errp handlers: return bool

No code actually depend on specific errno values returned by
vmstate_load_state. The only use of it is to check for success,
and sometimes inject numeric error values into error messages
in migration code. The latter is not a stopper for gradual
conversion to "errp + bool return value" APIs.

Big analysis of vmstate_load_state() callers, showing that
specific errno values are not actually used, is done by Peter
here:

https://lore.kernel.org/qemu-devel/[email protected]/

Converting of vmstate_load_state() itself will follow in
another series.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: ac7a5f1b72734491318e113a3c64cce103fe93b1
      
https://github.com/qemu/qemu/commit/ac7a5f1b72734491318e113a3c64cce103fe93b1
  Author: Thomas Huth <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M scripts/vmstate-static-checker.py

  Log Message:
  -----------
  scripts/vmstate-static-checker: Fix deprecation warnings with latest argparse

The argparse.FileType() type has been deprecated in the latest argparse
version (e.g. the one from Fedora 43), now causing the test_bad_vmstate
functional test to fail since there are unexpected strings in the output.
Change the script to use pathlib.Path instead to fix the test_bad_vmstate
test and to be prepared for the future when the deprecated FileType gets
removed completely.

Reported-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: c0c6a6ac7bd61f862d9c1800129c80dc2a93704e
      
https://github.com/qemu/qemu/commit/c0c6a6ac7bd61f862d9c1800129c80dc2a93704e
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M system/physmem.c

  Log Message:
  -----------
  system/physmem: mark io_mem_unassigned lockless

When the Bus Master bit is disabled in a PCI device's Command Register,
the device's DMA address space becomes unassigned memory (i.e. the
io_mem_unassigned MemoryRegion).

This can lead to deadlocks with IOThreads since io_mem_unassigned
accesses attempt to acquire the Big QEMU Lock (BQL). For example,
virtio-pci devices deadlock in virtio_write_config() ->
virtio_pci_stop_ioeventfd() when waiting for the IOThread while holding
the BQL. The IOThread is unable to acquire the BQL but the vcpu thread
won't release the BQL while waiting for the IOThread.

io_mem_unassigned is trivially thread-safe since it has no state, it
simply rejects all load/store accesses. Therefore it is safe to enable
lockless I/O on io_mem_unassigned to eliminate this deadlock.

Here is the backtrace described above:

  Thread 9 (Thread 0x7fccfcdff6c0 (LWP 247832) "CPU 4/KVM"):
  #0  0x00007fcd11529d46 in ppoll () from target:/lib64/libc.so.6
  #1  0x000056468a1a9bad in ppoll (__fds=<optimized out>, __nfds=<optimized 
out>, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:88
  #2  0x000056468a18f9d9 in fdmon_poll_wait (ctx=0x5646c6a1dc30, 
ready_list=0x7fccfcdfb310, timeout=-1) at ../util/fdmon-poll.c:79
  #3  0x000056468a18f14f in aio_poll (ctx=<optimized out>, 
blocking=blocking@entry=true) at ../util/aio-posix.c:730
  #4  0x000056468a1ad842 in aio_wait_bh_oneshot (ctx=<optimized out>, 
cb=cb@entry=0x564689faa420 <virtio_blk_ioeventfd_stop_vq_bh>, opaque=<optimized 
out>) at ../util/aio-wait.c:85
  #5  0x0000564689faaa89 in virtio_blk_stop_ioeventfd (vdev=0x5646c8fd7e90) at 
../hw/block/virtio-blk.c:1644
  #6  0x0000564689d77880 in virtio_bus_stop_ioeventfd 
(bus=bus@entry=0x5646c8fd7e08) at ../hw/virtio/virtio-bus.c:264
  #7  0x0000564689d780db in virtio_bus_stop_ioeventfd 
(bus=bus@entry=0x5646c8fd7e08) at ../hw/virtio/virtio-bus.c:256
  #8  0x0000564689d7d98a in virtio_pci_stop_ioeventfd (proxy=0x5646c8fcf8e0) at 
../hw/virtio/virtio-pci.c:413
  #9  virtio_write_config (pci_dev=0x5646c8fcf8e0, address=4, val=<optimized 
out>, len=<optimized out>) at ../hw/virtio/virtio-pci.c:803
  #10 0x0000564689dcb45a in memory_region_write_accessor 
(mr=mr@entry=0x5646c6dc2d30, addr=3145732, value=value@entry=0x7fccfcdfb528, 
size=size@entry=2, shift=<optimized out>, mask=mask@entry=65535, attrs=...) at 
../system/memory.c:491
  #11 0x0000564689dcaeb0 in access_with_adjusted_size (addr=addr@entry=3145732, 
value=value@entry=0x7fccfcdfb528, size=size@entry=2, access_size_min=<optimized 
out>, access_size_max=<optimized out>, access_fn=0x564689dcb3f0 
<memory_region_write_accessor>, mr=0x5646c6dc2d30, attrs=...) at 
../system/memory.c:567
  #12 0x0000564689dcb156 in memory_region_dispatch_write 
(mr=mr@entry=0x5646c6dc2d30, addr=addr@entry=3145732, data=<optimized out>, 
op=<optimized out>, attrs=attrs@entry=...) at ../system/memory.c:1554
  #13 0x0000564689dd389a in flatview_write_continue_step (attrs=..., 
attrs@entry=..., buf=buf@entry=0x7fcd05b87028 "", mr_addr=3145732, 
l=l@entry=0x7fccfcdfb5f0, mr=0x5646c6dc2d30, len=2) at ../system/physmem.c:3266
  #14 0x0000564689dd3adb in flatview_write_continue (fv=0x7fcadc0d8930, 
addr=3761242116, attrs=..., ptr=0xe0300004, len=2, mr_addr=<optimized out>, 
l=<optimized out>, mr=<optimized out>) at ../system/physmem.c:3296
  #15 flatview_write (fv=0x7fcadc0d8930, addr=addr@entry=3761242116, 
attrs=attrs@entry=..., buf=buf@entry=0x7fcd05b87028, len=len@entry=2) at 
../system/physmem.c:3327
  #16 0x0000564689dd7191 in address_space_write (as=0x56468b433600 
<address_space_memory>, addr=3761242116, attrs=..., buf=0x7fcd05b87028, len=2) 
at ../system/physmem.c:3447
  #17 address_space_rw (as=0x56468b433600 <address_space_memory>, 
addr=3761242116, attrs=attrs@entry=..., buf=buf@entry=0x7fcd05b87028, len=2, 
is_write=<optimized out>) at ../system/physmem.c:3457
  #18 0x0000564689ff1ef6 in kvm_cpu_exec (cpu=cpu@entry=0x5646c6dab810) at 
../accel/kvm/kvm-all.c:3248
  #19 0x0000564689ff32f5 in kvm_vcpu_thread_fn (arg=arg@entry=0x5646c6dab810) 
at ../accel/kvm/kvm-accel-ops.c:53
  #20 0x000056468a19225c in qemu_thread_start (args=0x5646c6db6190) at 
../util/qemu-thread-posix.c:393
  #21 0x00007fcd114c5b68 in start_thread () from target:/lib64/libc.so.6
  #22 0x00007fcd115364e4 in clone () from target:/lib64/libc.so.6

  Thread 3 (Thread 0x7fcd0503a6c0 (LWP 247825) "IO iothread1"):
  #0  0x00007fcd114c2d30 in __lll_lock_wait () from target:/lib64/libc.so.6
  #1  0x00007fcd114c8fe2 in pthread_mutex_lock@@GLIBC_2.2.5 () from 
target:/lib64/libc.so.6
  #2  0x000056468a192538 in qemu_mutex_lock_impl (mutex=0x56468b432e60 <bql>, 
file=0x56468a1e26a5 "../system/physmem.c", line=3198) at 
../util/qemu-thread-posix.c:94
  #3  0x0000564689dc12e2 in bql_lock_impl (file=file@entry=0x56468a1e26a5 
"../system/physmem.c", line=line@entry=3198) at ../system/cpus.c:566
  #4  0x0000564689ddc151 in prepare_mmio_access (mr=0x56468b433800 
<io_mem_unassigned>) at ../system/physmem.c:3198
  #5  address_space_lduw_internal_cached_slow (cache=<optimized out>, addr=2, 
attrs=..., result=0x0, endian=DEVICE_LITTLE_ENDIAN) at 
../system/memory_ldst.c.inc:211
  #6  address_space_lduw_le_cached_slow (cache=<optimized out>, 
addr=addr@entry=2, attrs=attrs@entry=..., result=result@entry=0x0) at 
../system/memory_ldst.c.inc:253
  #7  0x0000564689fd692c in address_space_lduw_le_cached (result=0x0, 
cache=<optimized out>, addr=2, attrs=...) at 
/var/tmp/qemu/include/exec/memory_ldst_cached.h.inc:35
  #8  lduw_le_phys_cached (cache=<optimized out>, addr=2) at 
/var/tmp/qemu/include/exec/memory_ldst_phys.h.inc:66
  #9  virtio_lduw_phys_cached (vdev=<optimized out>, cache=<optimized out>, 
pa=2) at /var/tmp/qemu/include/hw/virtio/virtio-access.h:166
  #10 vring_avail_idx (vq=0x5646c8fe2470) at ../hw/virtio/virtio.c:396
  #11 virtio_queue_split_set_notification (vq=0x5646c8fe2470, enable=0) at 
../hw/virtio/virtio.c:534
  #12 virtio_queue_set_notification (vq=0x5646c8fe2470, enable=0) at 
../hw/virtio/virtio.c:595
  #13 0x000056468a18e7a8 in poll_set_started (ctx=ctx@entry=0x5646c6c74e30, 
ready_list=ready_list@entry=0x7fcd050366a0, started=started@entry=true) at 
../util/aio-posix.c:247
  #14 0x000056468a18f2bb in poll_set_started (ctx=0x5646c6c74e30, 
ready_list=0x7fcd050366a0, started=true) at ../util/aio-posix.c:226
  #15 try_poll_mode (ctx=0x5646c6c74e30, ready_list=0x7fcd050366a0, 
timeout=<synthetic pointer>) at ../util/aio-posix.c:612
  #16 aio_poll (ctx=0x5646c6c74e30, blocking=blocking@entry=true) at 
../util/aio-posix.c:689
  #17 0x000056468a032c26 in iothread_run (opaque=opaque@entry=0x5646c69f3380) 
at ../iothread.c:63
  #18 0x000056468a19225c in qemu_thread_start (args=0x5646c6c75410) at 
../util/qemu-thread-posix.c:393
  #19 0x00007fcd114c5b68 in start_thread () from target:/lib64/libc.so.6
  #20 0x00007fcd115364e4 in clone () from target:/lib64/libc.so.6

Buglink: https://issues.redhat.com/browse/RHEL-71933
Reported-by: Peixiu Hou <[email protected]>
Cc: Kevin Wolf <[email protected]>
Cc: Paolo Bonzini <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 1529ec8f5fed0fdeb686c3f235f1b87ff116512e
      
https://github.com/qemu/qemu/commit/1529ec8f5fed0fdeb686c3f235f1b87ff116512e
  Author: Juraj Marcin <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: Flush migration channel after sending data of CMD_PACKAGED

If the length of the data sent after CMD_PACKAGED is just right, and
there is not much data to send afterward, it is possible part of the
CMD_PACKAGED payload will get left behind in the sending buffer. This
causes the destination side to hang while it tries to load the whole
package and initiate postcopy.

Signed-off-by: Juraj Marcin <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 26f65c01edcf046d0dcfaccaa24eb62584510e44
      
https://github.com/qemu/qemu/commit/26f65c01edcf046d0dcfaccaa24eb62584510e44
  Author: Peter Xu <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: Do not try to start VM if disk activation fails

If a rare split brain happens (e.g. dest QEMU started running somehow,
taking shared drive locks), src QEMU may not be able to activate the
drives anymore.  In this case, src QEMU shouldn't start the VM or it might
crash the block layer later with something like:

Meanwhile, src QEMU cannot try to continue either even if dest QEMU can
release the drive locks (e.g. by QMP "stop").  Because as long as dest QEMU
started running, it means dest QEMU's RAM is the only version that is
consistent with current status of the shared storage.

Reviewed-by: Fabiano Rosas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: c9aac1ae106e58be1c4f714793ee9170f91c5e7d
      
https://github.com/qemu/qemu/commit/c9aac1ae106e58be1c4f714793ee9170f91c5e7d
  Author: Juraj Marcin <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/postcopy-ram.c
    M migration/postcopy-ram.h
    M migration/savevm.c

  Log Message:
  -----------
  migration: Move postcopy_ram_listen_thread() to postcopy-ram.c

This patch addresses a TODO about moving postcopy_ram_listen_thread() to
postcopy file.

Signed-off-by: Juraj Marcin <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 67474ebacce381e51fa3e9c71af37b68faf4860a
      
https://github.com/qemu/qemu/commit/67474ebacce381e51fa3e9c71af37b68faf4860a
  Author: Juraj Marcin <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration.c
    M migration/postcopy-ram.c
    M migration/postcopy-ram.h
    M migration/savevm.c

  Log Message:
  -----------
  migration: Introduce postcopy incoming setup and cleanup functions

After moving postcopy_ram_listen_thread() to postcopy file, this patch
introduces a pair of functions, postcopy_incoming_setup() and
postcopy_incoming_cleanup(). These functions encapsulate setup and
cleanup of all incoming postcopy resources, postcopy-ram and postcopy
listen thread.

Furthermore, this patch also renames the postcopy_ram_listen_thread to
postcopy_listen_thread, as this thread handles not only postcopy-ram,
but also dirty-bitmaps and in the future it could handle other
postcopiable devices.

Signed-off-by: Juraj Marcin <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 468a7effdefba22ac905297b2aa02b5781587f40
      
https://github.com/qemu/qemu/commit/468a7effdefba22ac905297b2aa02b5781587f40
  Author: Juraj Marcin <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/postcopy-ram.c
    M migration/trace-events

  Log Message:
  -----------
  migration: Refactor all incoming cleanup info migration_incoming_destroy()

Currently, there are two functions that are responsible for calling the
cleanup of the incoming migration state. With successful precopy, it's
the incoming migration coroutine, and with successful postcopy it's the
postcopy listen thread. However, if postcopy fails during in the device
load, both functions will try to do the cleanup.

This patch refactors all cleanup that needs to be done on the incoming
side into a common function and defines a clear boundary, who is
responsible for the cleanup. The incoming migration coroutine is
responsible for calling the cleanup function, unless the listen thread
has been started, in which case the postcopy listen thread runs the
incoming migration cleanup in its BH.

Signed-off-by: Juraj Marcin <[email protected]>
Fixes: 9535435795 ("migration: push Error **errp into qemu_loadvm_state()")
Reviewed-by: Peter Xu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: b1a17a519b20438fb3f8435a2b7fa702f393d075
      
https://github.com/qemu/qemu/commit/b1a17a519b20438fb3f8435a2b7fa702f393d075
  Author: Juraj Marcin <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/postcopy-ram.c

  Log Message:
  -----------
  migration: Respect exit-on-error when migration fails before resuming

When exit-on-error was added to migration, it wasn't added to postcopy.
Even though postcopy migration will usually pause and not fail, in cases
it does unrecoverably fail before destination side has been started,
exit-on-error will allow management to query the error.

Signed-off-by: Juraj Marcin <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 0680dd185b3265a948e1863cdc52c65f72b994d9
      
https://github.com/qemu/qemu/commit/0680dd185b3265a948e1863cdc52c65f72b994d9
  Author: Juraj Marcin <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/postcopy-ram.c

  Log Message:
  -----------
  migration: Make postcopy listen thread joinable

This patch makes the listen thread joinable instead detached, and joins
it alongside other postcopy threads.

Signed-off-by: Juraj Marcin <[email protected]>
Reviewed-by: Peter Xu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 7b842fe354c63feaffc63c850b28c3610a0c90d2
      
https://github.com/qemu/qemu/commit/7b842fe354c63feaffc63c850b28c3610a0c90d2
  Author: Juraj Marcin <[email protected]>
  Date:   2025-11-03 (Mon, 03 Nov 2025)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/postcopy-ram.c
    M migration/savevm.c
    M migration/savevm.h
    M migration/trace-events
    M qapi/migration.json
    M tests/qemu-iotests/194
    M tests/qtest/migration/precopy-tests.c

  Log Message:
  -----------
  migration: Introduce POSTCOPY_DEVICE state

Currently, when postcopy starts, the source VM starts switchover and
sends a package containing the state of all non-postcopiable devices.
When the destination loads this package, the switchover is complete and
the destination VM starts. However, if the device state load fails or
the destination side crashes, the source side is already in
POSTCOPY_ACTIVE state and cannot be recovered, even when it has the most
up-to-date machine state as the destination has not yet started.

This patch introduces a new POSTCOPY_DEVICE state which is active while
the destination machine is loading the device state, is not yet running,
and the source side can be resumed in case of a migration failure.
Return-path is required for this state to function, otherwise it will be
skipped in favor of POSTCOPY_ACTIVE.

To transition from POSTCOPY_DEVICE to POSTCOPY_ACTIVE, the source
side uses a PONG message that is a response to a PING message processed
just before the POSTCOPY_RUN command that starts the destination VM.
Thus, this feature is effective even if the destination side does not
yet support this new state.

Signed-off-by: Juraj Marcin <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Peter Xu <[email protected]>


  Commit: 9e57131c1e37e699643c3fdd1fc85966e160f599
      
https://github.com/qemu/qemu/commit/9e57131c1e37e699643c3fdd1fc85966e160f599
  Author: Richard Henderson <[email protected]>
  Date:   2025-11-04 (Tue, 04 Nov 2025)

  Changed paths:
    M docs/devel/testing/fuzzing.rst
    M docs/system/arm/imx8mp-evk.rst
    M hw/arm/Kconfig
    M hw/arm/fsl-imx8mp.c
    M hw/arm/imx8mp-evk.c

  Log Message:
  -----------
  Merge tag 'pull-target-arm-20251103' of https://gitlab.com/pm215/qemu into 
staging

target-arm queue:
 * allow KVM accelerator on imx8mp-evk
 * docs/devel/testing/fuzzing: Note that you can get qtest to read from a file

# -----BEGIN PGP SIGNATURE-----
#
# iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmkIzk0ZHHBldGVyLm1h
# eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3pn5D/0djVUHCCeDkw8ZrgXYqw3m
# IkdSkA4dmuBPUUnjBT92ZUwuZ6IY7bk14fARC2Y4W01mgB78V+kzoRAeHSJ3Hp2+
# 8fKKDrv0ZCmBV/iqlxpP3j9q7gG91aEsC5dz7xfl1bZmLMaSvOArPbuEZECDTW7z
# vQxQfw9V33TwIzbLy8hLOmgCMxse4BIm8wpKjXAcVNAt0dDc7VGBaLfMCegZ/JYR
# 8+c8XSAITxe9bd5CrVfIOI5pnZ/PBekMAAYRtT/fhJLPGeKZsqH3EZpSOrBS+apv
# dpjtOEUdUbN54v5QkmNaCiX+/Yy4EEo+/0etmNR10LKpDBPPUkLQMWgtF0YUHPyp
# e7Y3iaLqTrd+GQ8JNvjqZteKiI6NEVxZDB+EKf9VyxZ0DACVxrDyZ9Yq8r4RGlib
# ltog0lPxShJW88yhuHajLouMITVj/FQiUSwQ9I4fmzHqTJa0CDC553vivIxXSglG
# BBF3dJ2WcBynkkzfpH751TwAnS/k/QsjR75c2wc8Vx21LAL+MM0RpbMwbk5Wh46Z
# uXKHps2NTyfDX8WfetgS3+FnAeyOfy8pqLpQPOyvep3s24xjW8Vuh6bxpHjyhYxm
# mHN+3ZB2/am2rNADg5WWtqzeRUw4kytoRAPTQyw2t7jWnjebRDHr3eCpPcicXkv5
# zuNSj8Ugiq60jgmRxZAQ9w==
# =Zqu+
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 03 Nov 2025 04:46:21 PM CET
# gpg:                using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Peter Maydell <[email protected]>" [unknown]
# gpg:                 aka "Peter Maydell <[email protected]>" [unknown]
# gpg:                 aka "Peter Maydell <[email protected]>" 
[unknown]
# gpg:                 aka "Peter Maydell <[email protected]>" [unknown]
# gpg: WARNING: The key's User ID is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE

* tag 'pull-target-arm-20251103' of https://gitlab.com/pm215/qemu:
  docs/devel/testing/fuzzing: Note that you can get qtest to read from a file
  hw/arm/imx8mp-evk: Fix guest time in KVM mode
  hw/arm/imx8mp-evk: Add KVM support

Signed-off-by: Richard Henderson <[email protected]>


  Commit: abe80c8ae24cc853b21e9574cf99bf9b97a78bc8
      
https://github.com/qemu/qemu/commit/abe80c8ae24cc853b21e9574cf99bf9b97a78bc8
  Author: Richard Henderson <[email protected]>
  Date:   2025-11-04 (Tue, 04 Nov 2025)

  Changed paths:
    M MAINTAINERS
    M backends/hostmem-shm.c
    M backends/tpm/tpm_emulator.c
    M docs/devel/migration/main.rst
    M hw/display/virtio-gpu.c
    M hw/intc/arm_gicv3_kvm.c
    M hw/pci/pci.c
    M hw/s390x/virtio-ccw.c
    M hw/scsi/spapr_vscsi.c
    M hw/vfio/container-legacy.c
    M hw/vfio/cpr-iommufd.c
    M hw/vfio/cpr-legacy.c
    M hw/vfio/cpr.c
    M hw/vfio/device.c
    M hw/virtio/virtio-mmio.c
    M hw/virtio/virtio-pci.c
    M hw/virtio/virtio.c
    M include/io/channel.h
    M include/migration/blocker.h
    M include/migration/cpr.h
    M include/migration/cpu.h
    M include/migration/misc.h
    M include/migration/vmstate.h
    M io/channel.c
    M migration/channel-block.c
    M migration/channel.c
    M migration/cpr-exec.c
    M migration/cpr.c
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M migration/migration.h
    M migration/options.c
    M migration/options.h
    M migration/postcopy-ram.c
    M migration/postcopy-ram.h
    M migration/qemu-file.c
    M migration/ram.c
    M migration/savevm.c
    M migration/savevm.h
    M migration/trace-events
    M migration/vmstate.c
    M qapi/migration.json
    M scripts/vmstate-static-checker.py
    M stubs/migr-blocker.c
    M system/physmem.c
    M system/ram-block-attributes.c
    M target/i386/sev.c
    M tests/qemu-iotests/194
    M tests/qtest/migration/precopy-tests.c

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

mem + migration pull for 10.2

- Fabiano's patch to fix snapshot crash by rejecting some caps
- Marco's mapped-ram support on snapshot save/load
- Steve's cpr maintainers entry update on retirement
- Peter's coverity fixes
- Chenyi's tdx fix on hugetlbfs regression
- Peter's doc update on migrate resume flag
- Peter's doc update on HMP set parameter for cpr-exec-command's char** parsing
- Xiaoyao's guest-memfd fix for enabling shmem
- Arun's fix on error_fatal regression for migration errors
- Bin's fix on redundant error free for add block failures
- Markus's cleanup around MigMode sets
- Peter's two patches (out of loadvm threadify) to cleanup qio read peek process
- Thomas's vmstate-static-checker update for possible deprecation of argparse 
use
- Stefan's fix on windows deadlock by making unassigned MMIOs lockless

# -----BEGIN PGP SIGNATURE-----
#
# iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCaQkZPBIccGV0ZXJ4QHJl
# ZGhhdC5jb20ACgkQO1/MzfOr1wZhTgEA8eCBMpM7PusNSdzzeIygKnIp2A8I70ca
# eIJz3ZM+FiUBAPVDrIZ59EhZA6NPcJb8Ya9OY4lT63F4BxrvN+f+uG4N
# =GUBi
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 03 Nov 2025 10:06:04 PM CET
# gpg:                using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Peter Xu <[email protected]>" [unknown]
# gpg:                 aka "Peter Xu <[email protected]>" [unknown]
# gpg: WARNING: The key's User ID is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D  D1A9 3B5F CCCD F3AB D706

* tag 'staging-pull-request' of https://gitlab.com/peterx/qemu: (36 commits)
  migration: Introduce POSTCOPY_DEVICE state
  migration: Make postcopy listen thread joinable
  migration: Respect exit-on-error when migration fails before resuming
  migration: Refactor all incoming cleanup info migration_incoming_destroy()
  migration: Introduce postcopy incoming setup and cleanup functions
  migration: Move postcopy_ram_listen_thread() to postcopy-ram.c
  migration: Do not try to start VM if disk activation fails
  migration: Flush migration channel after sending data of CMD_PACKAGED
  system/physmem: mark io_mem_unassigned lockless
  scripts/vmstate-static-checker: Fix deprecation warnings with latest argparse
  migration: vmsd errp handlers: return bool
  migration/vmstate: stop reporting error number for new _errp APIs
  tmp_emulator: improve and fix use of errp
  migration: vmstate_save_state_v(): fix error path
  migration: Properly wait on G_IO_IN when peeking messages
  io: Add qio_channel_wait_cond() helper
  migration: Put Error **errp parameter last
  migration: Use bitset of MigMode instead of variable arguments
  migration: Use unsigned instead of int for bit set of MigMode
  migration: Don't free the reason after calling migrate_add_blocker
  ...

Signed-off-by: Richard Henderson <[email protected]>


Compare: https://github.com/qemu/qemu/compare/e9c692eabbbb...abe80c8ae24c

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications

Reply via email to