Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 1c89dfefc4c33295126208225f202f39b5a234c3
      
https://github.com/qemu/qemu/commit/1c89dfefc4c33295126208225f202f39b5a234c3
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-19 (Wed, 19 Mar 2025)

  Changed paths:
    M backends/cryptodev-lkcf.c

  Log Message:
  -----------
  cryptodev: Fix error handling in cryptodev_lkcf_execute_task()

When cryptodev_lkcf_set_op_desc() fails, we report an error, but
continue anyway.  This is wrong.  We then pass a non-null @local_error
to various functions, which could easily fail error_setv()'s assertion
on failure.

Fail the function instead.

When qcrypto_akcipher_new() fails, we fail the function without
reporting the error.  This leaks the Error object.

Add the missing error reporting.  This also frees the Error object.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: zhenwei pi <[email protected]>


  Commit: 1dd24ccf829db234e23156c68b013e038040bf94
      
https://github.com/qemu/qemu/commit/1dd24ccf829db234e23156c68b013e038040bf94
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-19 (Wed, 19 Mar 2025)

  Changed paths:
    M net/vmnet-common.m

  Log Message:
  -----------
  error: Strip trailing '\n' from an error string argument

Tracked down with scripts/coccinelle/err-bad-newline.cocci.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Song Gao <[email protected]>


  Commit: de7b18083bfed4e1a01bb40b4ad050c47d2011fa
      
https://github.com/qemu/qemu/commit/de7b18083bfed4e1a01bb40b4ad050c47d2011fa
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-19 (Wed, 19 Mar 2025)

  Changed paths:
    M hw/xen/xen-bus.c

  Log Message:
  -----------
  hw/xen: Fix xen_bus_realize() error handling

The Error ** argument must be NULL, &error_abort, &error_fatal, or a
pointer to a variable containing NULL.  Passing an argument of the
latter kind twice without clearing it in between is wrong: if the
first call sets an error, it no longer points to NULL for the second
call.

xen_bus_realize() is wrong that way: it passes &local_err to
xs_node_watch() in a loop.  If this fails in more than one iteration,
it can trip error_setv()'s assertion.

Fix by clearing @local_err.

Fixes: c4583c8c394e (xen-bus: reduce scope of backend watch)
Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Stefano Stabellini <[email protected]>


  Commit: 6121c55db9c972950b28eb9ac84858271579f25c
      
https://github.com/qemu/qemu/commit/6121c55db9c972950b28eb9ac84858271579f25c
  Author: Markus Armbruster <[email protected]>
  Date:   2025-03-19 (Wed, 19 Mar 2025)

  Changed paths:
    M hw/xen/xen-bus.c

  Log Message:
  -----------
  hw/xen: Downgrade a xen_bus_realize() non-error to warning

xen_bus_realize() reports a failure to set up a watch as error, but it
doesn't treat it as one: it simply continues.  Report a warning
instead.

Signed-off-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Stefano Stabellini <[email protected]>


  Commit: fb802acdc8b162084e9e60d42aeba79097d14d2b
      
https://github.com/qemu/qemu/commit/fb802acdc8b162084e9e60d42aeba79097d14d2b
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/ppc/pnv_core.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_rtas.c
    M target/ppc/cpu.h
    M target/ppc/excp_helper.c

  Log Message:
  -----------
  ppc/spapr: Fix RTAS stopped state

This change takes the CPUPPCState 'quiesced' field added for powernv
hardware CPU core controls (used to stop and start cores), and extends
it to spapr to model the "RTAS stopped" state. This prevents the
schedulers attempting to run stopped CPUs unexpectedly, which can cause
hangs and possibly other unexpected behaviour.

The detail of the problematic situation is this:

A KVM spapr guest boots with all secondary CPUs defined to be in the
"RTAS stopped" state. In this state, the CPU is only responsive to the
start-cpu RTAS call. This behaviour is modeled in QEMU with the
start_powered_off feature, which sets ->halted on secondary CPUs at
boot. ->halted=true looks like an idle / sleep / power-save state which
typically is responsive to asynchronous interrupts, but spapr clears
wake-on-interrupt bits in the LPCR SPR. This more-or-less works.

Commit e8291ec16da8 ("target/ppc: fix timebase register reset state")
recently caused the decrementer to expire sooner at boot, causing a
decrementer exception on secondary CPUs in RTAS stopped state. This
was not a problem on TCG, but KVM limits how a guest can modify LPCR, in
particular it prevents the clearing of wake-on-interrupt bits, and so in
the course of CPU register synchronisation, the LPCR as set by spapr to
model the RTAS stopped state is overwritten with KVM's LPCR value, and
that then causes QEMU's interrupt code to notice the expired decrementer
exception, turn that into an interrupt, and set CPU_INTERRUPT_HARD.

That causes the CPU to be kicked, and the KVM vCPU thread to loop
calling kvm_cpu_exec(). kvm_cpu_exec() calls
kvm_arch_process_async_events(), which on ppc just returns ->halted.
This is still true, so it returns immediately with EXCP_HLT, and the
vCPU never goes to sleep because qemu_wait_io_event() sees
CPU_INTERRUPT_HARD is set. All this while the vCPU holds the bql.  This
causes the boot CPU to eventually lock up when it needs the bql.

So make 'quiesced' represent the "RTAS stopped" state, and have it
explicitly not respond to exceptions (interrupt conditions) rather than
rely on machine register state to model that state. This matches the
powernv quiesced state very well because it essentially turns off the
CPU core via a side-band control unit.

There are still issues with QEMU and KVM idea of LPCR diverging and that
is quite ugly and fragile that should be fixed. spapr should synchronize
its LPCR properly with KVM, and not try to use values that KVM does not
support.

Reported-by: Misbah Anjum N <[email protected]>
Tested-by: Misbah Anjum N <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: d7ffc17de706e6d0178fcdbc3a7d302f5a246c3c
      
https://github.com/qemu/qemu/commit/d7ffc17de706e6d0178fcdbc3a7d302f5a246c3c
  Author: Bibo Mao <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M target/loongarch/kvm/kvm.c

  Log Message:
  -----------
  target/loongarch: Fix error handling of KVM feature checks

For some paravirt KVM features, if user forces to enable it however
KVM does not support, qemu should fail to run and exit immediately,
rather than continue to run. Here set error message and return directly
in function kvm_arch_init_vcpu().

Fixes: 6edd2a9bec90 (target/loongarch/kvm: Implement LoongArch PMU extension)
Fixes: 936c3f4d7916 (target/loongarch: Use auto method with LSX feature)
Fixes: 5e360dabedb1 (target/loongarch: Use auto method with LASX feature)
Fixes: 620d9bd0022e (target/loongarch: Add paravirt ipi feature detection)
Signed-off-by: Bibo Mao <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>


  Commit: 0973b505fadedd208e4c3fa1698ffa0b2293006c
      
https://github.com/qemu/qemu/commit/0973b505fadedd208e4c3fa1698ffa0b2293006c
  Author: Bibo Mao <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/loongarch/virt.c

  Log Message:
  -----------
  hw/loongarch/virt: Eliminate error_propagate()

When there is an error, it is put into a local variable and then
propagated to somewhere else. Instead the error can be set right
away, error propagation can be removed.

Signed-off-by: Bibo Mao <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>


  Commit: daf78a9d51402e8f70d89f86a8c5f12d02aee667
      
https://github.com/qemu/qemu/commit/daf78a9d51402e8f70d89f86a8c5f12d02aee667
  Author: Bibo Mao <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M target/loongarch/tcg/tlb_helper.c

  Log Message:
  -----------
  target/loongarch: Remove unnecessary temporary variable assignment

Temporary variable ret is assigned at last line and return, it can
be removed and return directly.

Signed-off-by: Bibo Mao <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>


  Commit: a725bc970e3091499be8be52798c21259f91b2cd
      
https://github.com/qemu/qemu/commit/a725bc970e3091499be8be52798c21259f91b2cd
  Author: Bibo Mao <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/loongarch/virt.c

  Log Message:
  -----------
  target/loongarch: Clean up virt_cpu_irq_init() error handling

The Error ** argument must be NULL, &error_abort, &error_fatal, or a
pointer to a variable containing NULL. Passing an argument of the
latter kind twice without clearing it in between is wrong: if the
first call sets an error, it no longer points to NULL for the second
call.

virt_cpu_irq_init() is wrong that way: it passes &err to
hotplug_handler_plug() twice.  If both calls failed, this could trip
error_setv()'s assertion.  Moreover, if just one fails, the Error
object leaks. Fortunately, these calls can't actually fail.

Messed up in commit 50ebc3fc47f7 (hw/intc/loongarch_ipi: Notify ipi
object when cpu is plugged) and commit 087a23a87c57
(hw/intc/loongarch_extioi: Use cpu plug notification).

Clean this up by passing &error_abort instead.

Signed-off-by: Bibo Mao <[email protected]>
Acked-by: Markus Armbruster <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>


  Commit: f88c9cd804804360fa4b3586d7d2f84505ab8c26
      
https://github.com/qemu/qemu/commit/f88c9cd804804360fa4b3586d7d2f84505ab8c26
  Author: Peter Maydell <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/arm/Kconfig
    M hw/char/Kconfig
    M hw/char/meson.build

  Log Message:
  -----------
  rust: Kconfig: Factor out whether PL011 is Rust or C

Currently every board that uses the PL011 duplicates the logic that
selects the Rust implementation if Rust was enabled and the C
implementation if it does not.  Factor this out into a separate
Kconfig stanza, so that boards can go back to simply doing "select
PL011" and get whichever implementation is correct for the build.

This fixes a compilation failure if CONFIG_VMAPPLE is enabled
in a Rust build, because hw/vmapple/Kconfig didn't have the
"pick the Rust PL011 if Rust is enabled" logic in it.

Fixes: 59f4d65584bd33 ("hw/vmapple/vmapple: Add vmapple machine type")
Reported-by: Tanish Desai <[email protected]>
Analyzed-by: Tanish Desai <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: d1368344bc9bb251080507940f2bad16048d2687
      
https://github.com/qemu/qemu/commit/d1368344bc9bb251080507940f2bad16048d2687
  Author: Peter Maydell <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M configs/devices/i386-softmmu/default.mak
    M hw/i386/fw_cfg.c
    M hw/i386/pc.c
    M hw/timer/Kconfig
    M hw/timer/meson.build
    M rust/hw/timer/Kconfig
    M tests/qtest/meson.build

  Log Message:
  -----------
  rust: Kconfig: Factor out whether HPET is Rust or C

Currently we require everywhere that wants to know if there
is an HPET device to check for "CONFIG_HPET || CONFIG_X_HPET_RUST".
Factor out whether the HPET device is Rust or C into a separate
Kconfig stanza, so that CONFIG_HPET means "there is an HPET",
and whether this has pulled in CONFIG_X_HPET_RUST or CONFIG_HPET_C
is something the rest of QEMU can ignore.

Signed-off-by: Peter Maydell <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 033a5649b45690d09bde5cdf15cb83453f6ac811
      
https://github.com/qemu/qemu/commit/033a5649b45690d09bde5cdf15cb83453f6ac811
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/intc/xive.c

  Log Message:
  -----------
  ppc/xive: Fix typo in crowd block level calculation

I introduced this bug when "tidying" the original patch, not Frederic.
Paper bag for me.

Fixes: 9cb7f6ebed60 ("ppc/xive2: Support group-matching when looking for 
target")
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 344921309d933547974c2e85c52e2294513d9c45
      
https://github.com/qemu/qemu/commit/344921309d933547974c2e85c52e2294513d9c45
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/intc/xive.c
    M hw/intc/xive2.c

  Log Message:
  -----------
  pnv/xive: Fix possible undefined shift error in group size calculation

Coverity discovered a potential shift overflow in group size calculation
in the case of a guest error. Add checks and logs to ensure a issues are
caught.

Make the group and crowd error checking code more similar to one another
while here.

Resolves: Coverity CID 1593724
Fixes: 9cb7f6ebed60 ("ppc/xive2: Support group-matching when looking for 
target")
Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: e0b9357337e4005d7915d8c746eb3ce66c61fac0
      
https://github.com/qemu/qemu/commit/e0b9357337e4005d7915d8c746eb3ce66c61fac0
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/intc/xive2.c

  Log Message:
  -----------
  ppc/xive2: Fix logical / bitwise comparison typo

The comparison as written is always false (perhaps confusingly, because
the functions/macros are not really booleans but return 0 or the tested
bit value). Change to use logical-and.

Resolves: Coverity CID 1593721
Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 965797d19a0d0b5dbe73f1afa110576589d25003
      
https://github.com/qemu/qemu/commit/965797d19a0d0b5dbe73f1afa110576589d25003
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  ppc/spapr: Fix possible pa_features memory overflow

Coverity reports a possible memory overflow in spapr_dt_pa_features().
This should not be a true bug since DAWR1 cap is only be true for
CPU_POWERPC_LOGICAL_3_10. Add an assertion to ensure any bug there is
caught.

Resolves: Coverity CID 1593722
Fixes: 5f361ea187ba ("ppc: spapr: Enable 2nd DAWR on Power10 pSeries machine")
Reviewed-By: Shivaprasad G Bhat <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: ce5a32d18054fe468e3536f0a63026d5b196057b
      
https://github.com/qemu/qemu/commit/ce5a32d18054fe468e3536f0a63026d5b196057b
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/ppc/pnv.c
    M hw/ppc/pnv_bmc.c
    M hw/ppc/pnv_pnor.c
    M include/hw/ppc/pnv_pnor.h

  Log Message:
  -----------
  ppc/pnv: Move the PNOR LPC address into struct PnvPnor

Rather than use the hardcoded define throughout the tree for the
PNOR LPC address, keep it within the PnvPnor object.

This should solve a dead code issue in the BMC HIOMAP checks where
Coverity (correctly) reported that the sanity checks are dead code.
We would like to keep the sanity checks without turning them into a
compile time assert in case we would like to make them configurable
in future.

Fixes: 4c84a0a4a6e5 ("ppc/pnv: Add a PNOR address and size sanity checks")
Resolves: Coverity CID 1593723
Reviewed-by: Cédric Le Goater <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: d8b1c3eaed5cf11d2db702a415df082dc1754b2c
      
https://github.com/qemu/qemu/commit/d8b1c3eaed5cf11d2db702a415df082dc1754b2c
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/ppc/pnv_occ.c

  Log Message:
  -----------
  ppc/pnv: Fix system symbols in HOMER structure definitions

These definitions were taken from skiboot firmware. I naively thought it
would be nicer to keep the code similar by using the preprocessor, but
it was pointed out that system headers might still use those symbols and
cause something unexpected. Also just nicer to keep the QEMU tree clean.

Cc: "Philippe Mathieu-Daudé" <[email protected]>
Cc: "Stefan Hajnoczi" <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Fixes: 70bc5c2498f46 ("ppc/pnv: Make HOMER memory a RAM region")
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 7bda68e8e2b0b836639557ddb13d761bdd15a104
      
https://github.com/qemu/qemu/commit/7bda68e8e2b0b836639557ddb13d761bdd15a104
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-03-20 (Thu, 20 Mar 2025)

  Changed paths:
    M hw/core/qdev-properties.c
    M include/hw/qdev-properties.h
    M rust/hw/timer/hpet/src/hpet.rs

  Log Message:
  -----------
  qdev, rust/hpet: fix type of HPET "timers" property

Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: ca2737d6eca7fcc62ecb7a27246837b7c18830fc
      
https://github.com/qemu/qemu/commit/ca2737d6eca7fcc62ecb7a27246837b7c18830fc
  Author: Yao Zi <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M host/include/loongarch64/host/atomic128-ldst.h.inc
    M host/include/loongarch64/host/bufferiszero.c.inc
    M host/include/loongarch64/host/load-extract-al16-al8.h.inc

  Log Message:
  -----------
  host/include/loongarch64: Fix inline assembly compatibility with Clang

Clang on LoongArch only accepts fp register names in the dollar-prefixed
form, while GCC allows omitting the dollar. Change registers in ASM
clobbers to the dollar-prefixed form to make user emulators buildable
with Clang on loongarch64. No functional change invovled.

Cc: [email protected]
Fixes: adc8467e697 ("host/include/loongarch64: Add atomic16 load and store")
Signed-off-by: Yao Zi <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Bibo Mao <[email protected]>
Signed-off-by: Bibo Mao <[email protected]>


  Commit: 1267e1ddeb65db5405405adb711272133fe9c670
      
https://github.com/qemu/qemu/commit/1267e1ddeb65db5405405adb711272133fe9c670
  Author: Bibo Mao <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M docs/system/loongarch/virt.rst
    A docs/system/target-loongarch.rst
    M docs/system/targets.rst

  Log Message:
  -----------
  docs/system: Add entry for LoongArch system

Add index entry for LoongArch system and do some small modification
with  LoongArch document with rst syntax.

Signed-off-by: Bibo Mao <[email protected]>
Reviewed-by: Song Gao <[email protected]>


  Commit: b8d5503a3ecf8bcf75e4960d04215f71dbfd5dd2
      
https://github.com/qemu/qemu/commit/b8d5503a3ecf8bcf75e4960d04215f71dbfd5dd2
  Author: Song Gao <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M target/loongarch/internals.h
    M target/loongarch/tcg/csr_helper.c
    M target/loongarch/tcg/tlb_helper.c

  Log Message:
  -----------
  target/loongarch: fix bad shift in check_ps()

In expression 1ULL << tlb_ps, left shifting by more than 63 bits has
undefined behavior. The shift amount, tlb_ps, is as much as 64. check
"tlb_ps >=64" to fix.

Resolves: Coverity CID 1593475

Fixes: d882c284a3 ("target/loongarch: check tlb_ps")
Suggested-by: Peter Maydell <[email protected]>
Signed-off-by: Song Gao <[email protected]>
Reviewed-by: Bibo Mao <[email protected]>
Signed-off-by: Bibo Mao <[email protected]>


  Commit: 0cb6498b4ce8d0e800e85a43429919c208537405
      
https://github.com/qemu/qemu/commit/0cb6498b4ce8d0e800e85a43429919c208537405
  Author: BALATON Zoltan <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/ppc/amigaone.c

  Log Message:
  -----------
  ppc/amigaone: Check blk_pwrite return value

Coverity reported that return value of blk_pwrite() maybe should not
be ignored. We can't do much if this happens other than report an
error but let's do that to silence this report.

Resolves: Coverity CID 1593725
Signed-off-by: BALATON Zoltan <[email protected]>
Reviewed-by: Nicholas Piggin <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 667413f5bfe3c1c4f082c9534b84e70c1ef3ff3a
      
https://github.com/qemu/qemu/commit/667413f5bfe3c1c4f082c9534b84e70c1ef3ff3a
  Author: BALATON Zoltan <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/ppc/amigaone.c

  Log Message:
  -----------
  ppc/amigaone: Constify default_env

The variable holding default env is not supposed to be written.

Signed-off-by: BALATON Zoltan <[email protected]>
Reviewed-by: Nicholas Piggin <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 1490d0bcdfcb78b4503cae42353d3dd50f4e9d96
      
https://github.com/qemu/qemu/commit/1490d0bcdfcb78b4503cae42353d3dd50f4e9d96
  Author: Harsh Prateek Bora <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  ppc/spapr: fix default cpu for pre-9.0 machines.

When POWER10 CPU was made as default, we missed keeping POWER9 as
default for older pseries releases (pre-9.0) at that time.
This caused breakge in default cpu evaluation for older pseries
machines and hence this fix.

Fixes: 51113013f3 ("ppc/spapr: change pseries machine default to POWER10 CPU")
Cc: [email protected]
Signed-off-by: Harsh Prateek Bora <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 8defe9da08135d03e054f20cb8fea4389be96e18
      
https://github.com/qemu/qemu/commit/8defe9da08135d03e054f20cb8fea4389be96e18
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M target/ppc/translate/vmx-impl.c.inc
    M target/ppc/translate/vsx-impl.c.inc

  Log Message:
  -----------
  target/ppc: Fix facility interrupt checks for VSX

Facility interrupt checks in general should come after the ISA version
check, because the facility interrupt and facility type themselves are
ISA dependent and should not appear on CPUs where the instruction does
not exist at all.

This resolves a QEMU crash booting NetBSD/macppc due to

  qemu: fatal: Raised an exception without defined vector 94

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2741
Cc: Chinmay Rath <[email protected]>
Cc: [email protected]
Debugged-by: Richard Henderson <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Fixes: aa0f34ec3fc7 ("target/ppc: implement vrlq")
Fixes: 7419dc5b2b5b ("target/ppc: Move VSX vector storage access insns to 
decodetree.")
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 73c0c904fc99e2ceecbbded84ec76d40d3f2daae
      
https://github.com/qemu/qemu/commit/73c0c904fc99e2ceecbbded84ec76d40d3f2daae
  Author: Nicholas Piggin <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M target/ppc/cpu_init.c

  Log Message:
  -----------
  target/ppc: Fix e200 duplicate SPRs

DSRR0/1 registers are in the BookE ISA not e200 specific, so
remove the duplicate e200 register definitions.

Cc: Roman Kapl <[email protected]>
Cc: [email protected]
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2768
Fixes: 0e3bf4890906 ("ppc: add DBCR based debugging")
Signed-off-by: Nicholas Piggin <[email protected]>


  Commit: 14fb6dbbc50f43057202c685c3aa017287cca37f
      
https://github.com/qemu/qemu/commit/14fb6dbbc50f43057202c685c3aa017287cca37f
  Author: Michael Tokarev <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M Makefile

  Log Message:
  -----------
  Makefile: "make dist" generates a .xz, not .bz2

Fixes: 9bc9e9511944 (make-release: switch to .xz format by default)
Signed-off-by: Michael Tokarev <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>


  Commit: 94a9471ceb656ad45e86aa07e98d8d0c3b8afe82
      
https://github.com/qemu/qemu/commit/94a9471ceb656ad45e86aa07e98d8d0c3b8afe82
  Author: Laurent Vivier <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M docs/system/devices/net.rst

  Log Message:
  -----------
  docs: Explain how to use passt

Add a chapter to explain how to use passt(1) instead of '-net user'.
passt(1) can be connected to QEMU using UNIX socket or vhost-user.
With vhost-user, migration of the VM is allowed and internal state of
passt(1) is transfered from one side to the other

Bug: https://gitlab.com/qemu-project/qemu/-/issues/2827
Signed-off-by: Laurent Vivier <[email protected]>
Reviewed-by: David Gibson <[email protected]>
Reviewed-by: Stefano Brivio <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: a028e04c89ea782f03c78db438239cfb7a47b4e9
      
https://github.com/qemu/qemu/commit/a028e04c89ea782f03c78db438239cfb7a47b4e9
  Author: Akihiko Odaki <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M .mailmap

  Log Message:
  -----------
  mailmap: Update email address for Akihiko Odaki

It's too late but better than never.

Signed-off-by: Akihiko Odaki <[email protected]>
Reviewed-by: Michael Tokarev <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 560429fd746adf04b57237c3c4a38ecfd906c592
      
https://github.com/qemu/qemu/commit/560429fd746adf04b57237c3c4a38ecfd906c592
  Author: Gerd Hoffmann <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/uefi/var-service-core.c

  Log Message:
  -----------
  hw/uefi: flush variable store to disk in post load

Make live migration more robust.  Commit 4c0cfc72b31a ("pflash_cfi01:
write flash contents to bdrv on incoming migration") elaborates in
detail on the motivation.

Cc: Peter Krempa <[email protected]>
Reviewed-by: Peter Krempa <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
Message-ID: <[email protected]>


  Commit: ae24cf139ba681f8ce3dc809f3f1119b16c73043
      
https://github.com/qemu/qemu/commit/ae24cf139ba681f8ce3dc809f3f1119b16c73043
  Author: Gerd Hoffmann <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/uefi/var-service-json.c

  Log Message:
  -----------
  hw/uefi: fix error handling in uefi_vars_json_save

Catch lseek errors.  Return on errors.
Use autoptr for the GString to simplify cleanup.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
Message-ID: <[email protected]>


  Commit: 761d0b5fb7e0f0a6a36c5fc449c6feda2b78af79
      
https://github.com/qemu/qemu/commit/761d0b5fb7e0f0a6a36c5fc449c6feda2b78af79
  Author: Gerd Hoffmann <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/uefi/var-service-json.c

  Log Message:
  -----------
  hw/uefi: fix error handling in uefi_vars_json_load

Catch lseek errors.  Return on read errors.

Fixes: CID 1593154
Fixes: CID 1593157
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
Message-ID: <[email protected]>


  Commit: 5807508fad5344706f7d644e4232d065cb1ac2ea
      
https://github.com/qemu/qemu/commit/5807508fad5344706f7d644e4232d065cb1ac2ea
  Author: Gerd Hoffmann <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/riscv/virt.c
    M hw/uefi/Kconfig

  Log Message:
  -----------
  hw/uefi-vars-sysbus: allow for riscv virt

Allow the device being added to riscv virt VMs.

Reviewed-by: Daniel Henrique Barboza <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
Message-ID: <[email protected]>


  Commit: e1092f765d9c0bf33762a03fe45e3d0de86c86a6
      
https://github.com/qemu/qemu/commit/e1092f765d9c0bf33762a03fe45e3d0de86c86a6
  Author: Gerd Hoffmann <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/loongarch/virt.c
    M hw/uefi/Kconfig

  Log Message:
  -----------
  hw/uefi-vars-sysbus: allow for loongarch virt

Allow the device being added to loongarch virt VMs.

Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
Message-ID: <[email protected]>


  Commit: 5e5d18d2ccd674778715f828df80fdddac73bdea
      
https://github.com/qemu/qemu/commit/5e5d18d2ccd674778715f828df80fdddac73bdea
  Author: Gerd Hoffmann <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M docs/interop/firmware.json

  Log Message:
  -----------
  docs/firmware: add feature flag for host uefi variable store

Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Gerd Hoffmann <[email protected]>
Message-ID: <[email protected]>


  Commit: 9d116f42a38cb95a33da837e0b0b50d91e28906b
      
https://github.com/qemu/qemu/commit/9d116f42a38cb95a33da837e0b0b50d91e28906b
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/assertions.rs

  Log Message:
  -----------
  rust: assertions: add static_assert

Add a new assertion that is similar to "const { assert!(...) }" but can be used
outside functions and with older versions of Rust.  A similar macro is found in
Linux, whereas the "static_assertions" crate has a const_assert macro that
produces worse error messages.

Suggested-by: Peter Maydell <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 5b87a07e76816ed61e5968eb370859a5901b8516
      
https://github.com/qemu/qemu/commit/5b87a07e76816ed61e5968eb370859a5901b8516
  Author: Peter Maydell <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M include/hw/char/pl011.h

  Log Message:
  -----------
  hw/char/pl011: Pad PL011State struct to same size as Rust impl

We have some users of the PL011 struct which embed it directly into
their own state structs. This means that the Rust version of the
device must have a state struct that is the same size or smaller
than the C struct.

In commit 9b642097d6b7 ("rust: pl011: switch to safe chardev operation")
the Rust PL011 state struct changed from having a bindings::CharBackend
to a chardev::CharBackend, which made it grow larger than the C
version. This results in an assertion at startup when QEMU was
built with Rust enabled:

 $ qemu-system-arm -M raspi2b -display none
 ERROR:../../qom/object.c:562:object_initialize_with_type: assertion
 failed: (size >= type->instance_size)

The long-term better approach to this problem would be to move
our C device code patterns away from "embed a struct" and (back)
to "have a pointer to the device", so we can make the C PL011State
struct a private implementation detail rather than exposed to
its users.

For the short term, add a padding field at the end of the C struct
so it's big enough that the Rust state struct can fit.

Fixes: 9b642097d6b7 ("rust: pl011: switch to safe chardev operation")
Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: cc3d262aa93a42e19c38f6acb6d0f6012a71eb4b
      
https://github.com/qemu/qemu/commit/cc3d262aa93a42e19c38f6acb6d0f6012a71eb4b
  Author: Peter Maydell <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/hw/char/pl011/src/device.rs
    M rust/wrapper.h

  Log Message:
  -----------
  rust: pl011: Check size of state struct at compile time

The PL011 device's C implementation exposes its PL011State struct to
users of the device, and one common usage pattern is to embed that
struct into the user's own state struct.  (The internals of the
struct are technically visible to the C user of the device, but in
practice are treated as implementation details.)

This means that the Rust version of the state struct must not be
larger than the C version's struct; otherwise it will trip a runtime
assertion in object_initialize_type() when the C user attempts to
in-place initialize the type.

Add a compile-time assertion on the Rust side, so that if we
accidentally make the Rust device state larger we know immediately
that we need to expand the padding in the C version of the struct.

Reviewed-by: Zhao Liu <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 134ab17fffb32a3f86debb4eec9df12f7f833a3b
      
https://github.com/qemu/qemu/commit/134ab17fffb32a3f86debb4eec9df12f7f833a3b
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M hw/core/loader.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/sparc/sun4m.c
    M hw/sparc64/sun4u.c
    M include/hw/loader.h

  Log Message:
  -----------
  load_aout: replace bswap_needed with big_endian

Targets know whether they are big-endian more than they know if
the endianness is different from the host: the former is mostly
a constant, at least in machine creation code, while the latter
has to be computed with TARGET_BIG_ENDIAN != HOST_BIG_ENDIAN or
something like that.

load_aout, however, takes a "bswap_needed" argument.  Replace
it with a "big_endian" argument; even though all users are
big-endian, it is cheap enough to keep the optional swapping
functionality even for little-endian boards.

Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: e16354b7f2e70d5ece97854d00141e3df4625cf6
      
https://github.com/qemu/qemu/commit/e16354b7f2e70d5ece97854d00141e3df4625cf6
  Author: Pierrick Bouvier <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M bsd-user/elfload.c
    M include/exec/cpu-all.h
    M include/exec/poison.h
    M linux-user/elfload.c
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  exec/cpu-all: remove BSWAP_NEEDED

This identifier is poisoned, so it can't be used from common code
anyway. We replace all occurrences with its definition directly.

Signed-off-by: Pierrick Bouvier <[email protected]>
Link: 
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: ea8a7ceba3aafe4de9e7306df663698809e8381a
      
https://github.com/qemu/qemu/commit/ea8a7ceba3aafe4de9e7306df663698809e8381a
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Remove unnecessary unsafe

Remove the `unsafe` block of vmsd, because vmsd (passed to
vmstate_struct) is defined in Rust side now, and it doesn't need
`unsafe`.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 6ca5c3bedf3265358cf9033577dd30ed865d1cb3
      
https://github.com/qemu/qemu/commit/6ca5c3bedf3265358cf9033577dd30ed865d1cb3
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Fix num_offset in vmstate macros

`num_offset` is a member of `VMStateField`, and there's no need to use
"." to access this field in a `VMStateField` instance.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: c3d80af5ecf4f00db4a8d3ac5eca6edc0c9f061e
      
https://github.com/qemu/qemu/commit/c3d80af5ecf4f00db4a8d3ac5eca6edc0c9f061e
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Fix num field when varray flags are set

Array type vmstate has the VMStateField with `num` equals its length.

When the varray vmstate is built based a array type, the `num` field
should be cleaned to 0, because varray uses `num_offset` instead of
`num` to store elements number information.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 20797069c71a90582078448b81de28f227a8403b
      
https://github.com/qemu/qemu/commit/20797069c71a90582078448b81de28f227a8403b
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Fix size field of VMStateField with VMS_ARRAY_OF_POINTER flag

The `size` field of the VMStateField with VMS_ARRAY_OF_POINTER flag
should stores the size of pointer, which depends on platform.

Currently, `*const`, `*mut`, `NonNull`, `Box<>` and their wrapper are
supported, and they have the same size as `usize`.

Store the size (of `usize`) when VMS_ARRAY_OF_POINTER flag is set.

The size may be changed when more smart pointers are supported, but now
the size of "usize" is enough.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 618258256e6c60957100c5a01ab70f5473020cb9
      
https://github.com/qemu/qemu/commit/618258256e6c60957100c5a01ab70f5473020cb9
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/assertions.rs
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Fix type check for varray in vmstate_struct

When pass a varray to vmstate_struct, the `type` parameter should be the
type of the element in the varray, for example:

vmstate_struct!(HPETState, timers, [0 .. num_timers], VMSTATE_HPET_TIMER,
                BqlRefCell<HPETTimer>).with_version_id(0)

But this breaks current type check, because it checks the type of
`field`, which is an array type (for the above example, type of timers
is [BqlRefCell<HPETTimer>; 32], not BqlRefCell<HPETTimer>).

But the current assert_field_type() can no longer be extended to include
new arguments, so a variant of it (a second macro containing the
`num = $num:ident` parameter) had to be added to handle array cases.

In this new macro, it not only checks the type of element, but also
checks whether the `num` (number of elements in varray) is out of range.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 42c814b1395c39659270248d205deaaaa47a84f2
      
https://github.com/qemu/qemu/commit/42c814b1395c39659270248d205deaaaa47a84f2
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Fix "cannot infer type" error in vmstate_struct

Rust cannot infer the type (it should be VMStateField) after
Zeroable::ZERO, which cause the compiling error.

To fix this error, call with_varray_flag() after VMStateField's
initialization.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: e5655e92a8b984129aed12f24fc50d6e3f63429d
      
https://github.com/qemu/qemu/commit/e5655e92a8b984129aed12f24fc50d6e3f63429d
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Fix unnecessary VMState bound of with_varray_flag()

The VMState type bound is not used in with_varray_flag().

And for vmstate_struct, Rust cannot infer the type of `num` from the
call_func_with_field(), so this causes the compiling error because it
complains "cannot satisfy `_: VMState`" in with_varray_flag().

Note Rust can infer the type in vmstate_of macro so that
with_varray_flag() can work at there. It is possible that the different
initialization ways in the two macros cause differences in Rust's
type inference.

But in fact, the VMState type bound is not used in with_varray_flag()
and vmstate_varray_flag() has already checked the VMState type, it's
safe to drop VMState bound of with_varray_flag(), which can fix the
above compiling error.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 5006e39cfacbf37e6925239059ae6945e36cf74e
      
https://github.com/qemu/qemu/commit/5006e39cfacbf37e6925239059ae6945e36cf74e
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Relax array check when build varray in vmstate_struct

The varry of structure created by vmstate_struct is different with
vmstate_of. This is because vmstate_struct uses the `vmsd` to traverse
the vmstates of structure's fields, rather than treating the structure
directly as a well-defined vmstate.

Therefore, there's no need to check array flag when building varray by
vmstate_struct.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 3baf82e0a17bc037c9c564958a8b90814119d738
      
https://github.com/qemu/qemu/commit/3baf82e0a17bc037c9c564958a8b90814119d738
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Re-implement VMState trait for timer binding

At present, Rust side has a timer binding "timer::Timer", so the vmstate
for timer should base on that binding instead of the raw
"binding::QEMUTimer".

It's possible to apply impl_vmstate_transparent for cell::Opaque and
then impl_vmstate_forward for timer::Timer. But binding::QEMUTimer
shouldn't be used directly, so that vmstate for such raw timer type is
useless.

Thus, apply impl_vmstate_scalar for timer::Timer. And since Opaque<> is
useful, apply impl_vmstate_transparent for cell::Opaque as well.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: b13100372180fdb052aa6bbce663eea0c59e5db4
      
https://github.com/qemu/qemu/commit/b13100372180fdb052aa6bbce663eea0c59e5db4
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Support vmstate_validate

In C version, VMSTATE_VALIDATE accepts the function pointer, which is
used to check if some conditions of structure could meet, although the
C version macro doesn't accept any structure as the opaque type.

But it's hard to integrate VMSTATE_VALIDAE into vmstate_struct, a new
macro has to be introduced to specifically handle the case corresponding
to VMSTATE_VALIDATE.

One of the difficulties is inferring the type of a callback by its name
`test_fn`. We can't directly use `test_fn` as a parameter of
test_cb_builder__() to get its type "F", because in this way, Rust
compiler will be too conservative on drop check and complain "the
destructor for this type cannot be evaluated in constant functions".

Fortunately, PhantomData<T> could help in this case, because it is
considered to never have a destructor, no matter its field type [*].

The `phantom__()` in the `call_func_with_field` macro provides a good
example of using PhantomData to infer type. So copy this idea and apply
it to the `vmstate_validate` macro.

[*]: https://doc.rust-lang.org/std/ops/trait.Drop.html#drop-check

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 1998502196ad81fde58a48aac2256731bf6d0022
      
https://github.com/qemu/qemu/commit/1998502196ad81fde58a48aac2256731bf6d0022
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/meson.build
    M rust/qemu-api/tests/tests.rs
    A rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust/vmstate: Add unit test for vmstate_of macro

The vmstate has too many combinations of VMStateFlags and VMStateField.
Currently, the best way to test is to ensure that the Rust vmstate
definition is consistent with the (possibly corresponding) C version.

Add a unit test to cover some patterns accepted by vmstate_of macro,
which correspond to the following C version macros:
 * VMSTATE_U16
 * VMSTATE_UNUSED
 * VMSTATE_VARRAY_UINT16_UNSAFE
 * VMSTATE_VARRAY_MULTIPLY

Note: Because vmstate_info_* are defined in vmstate-types.c, it's
necessary to link libmigration to rust unit tests. In the future,
maybe it's possible to spilt libmigration from rust_qemu_api_objs.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 57c327f3a044ebd6da9efda07e4d264996688110
      
https://github.com/qemu/qemu/commit/57c327f3a044ebd6da9efda07e4d264996688110
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust/vmstate: Add unit test for vmstate_{of|struct} macro

Add a unit test to cover some patterns accepted by vmstate_of and
vmstate_struct macros, which correspond to the following C version
macros:

 * VMSTATE_BOOL_V
 * VMSTATE_U64
 * VMSTATE_STRUCT_VARRAY_UINT8
 * (no C version) MULTIPLY variant of VMSTATE_STRUCT_VARRAY_UINT32
 * VMSTATE_ARRAY

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 8df1b0012aba2501bb1654cb4fbdf1b52ce22222
      
https://github.com/qemu/qemu/commit/8df1b0012aba2501bb1654cb4fbdf1b52ce22222
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust/vmstate: Add unit test for pointer case

Add a unit test to cover some patterns accepted by vmstate_of macro,
which correspond to the following C version macros:
 * VMSTATE_POINTER
 * VMSTATE_ARRAY_OF_POINTER

Note: Currently, vmstate_struct can't handle the pointer to structure
case. Leave this case as a FIXME and use vmstate_unused as a place
holder.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 9bd7e6f7f2f0f97178fe6884b39f40e686567f52
      
https://github.com/qemu/qemu/commit/9bd7e6f7f2f0f97178fe6884b39f40e686567f52
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/qemu-api/tests/vmstate_tests.rs

  Log Message:
  -----------
  rust/vmstate: Add unit test for vmstate_validate

Add a unit test for vmstate_validate, which corresponds to the C version
macro: VMSTATE_VALIDATE.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: f7b87e464c8e9d30661fb9f519ed14fb053cd415
      
https://github.com/qemu/qemu/commit/f7b87e464c8e9d30661fb9f519ed14fb053cd415
  Author: Zhao Liu <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/hw/char/pl011/src/device_class.rs
    M rust/qemu-api/src/vmstate.rs

  Log Message:
  -----------
  rust/vmstate: Include complete crate path of VMStateFlags in vmstate_clock

The use of "bindings::*" masks incomplete path of VMStateFlags.

Include complete crate path of VMStateFlags in vmstate_clock, and clean
up "bindings::*" in device_class.rs of pl011.

Signed-off-by: Zhao Liu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 64acc23c9793e86f2811345f3c122bf3ece8088b
      
https://github.com/qemu/qemu/commit/64acc23c9793e86f2811345f3c122bf3ece8088b
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    M rust/hw/timer/hpet/src/hpet.rs

  Log Message:
  -----------
  rust: hpet: fix decoding of timer registers

Due to a missing "& 0x18", timer registers are not decoded correctly.
This breaks the tests/functional/test_x86_64_tuxrun.py functional
test.

Fixes: 519088b7cf6 ("rust: hpet: decode HPET registers into enums", 2025-03-06)
Reported-by: Peter Maydell <[email protected]>
Tested-by: Peter Maydell <[email protected]>
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>


  Commit: 5eb0849562c9b6988b620493dbea6421e31bfc33
      
https://github.com/qemu/qemu/commit/5eb0849562c9b6988b620493dbea6421e31bfc33
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-23 (Sun, 23 Mar 2025)

  Changed paths:
    M docs/system/loongarch/virt.rst
    A docs/system/target-loongarch.rst
    M docs/system/targets.rst
    M host/include/loongarch64/host/atomic128-ldst.h.inc
    M host/include/loongarch64/host/bufferiszero.c.inc
    M host/include/loongarch64/host/load-extract-al16-al8.h.inc
    M target/loongarch/internals.h
    M target/loongarch/tcg/csr_helper.c
    M target/loongarch/tcg/tlb_helper.c

  Log Message:
  -----------
  Merge tag 'pull-loongarch-20250321' of https://gitlab.com/bibo-mao/qemu into 
staging

loongarch queue

# -----BEGIN PGP SIGNATURE-----
#
# iHUEABYKAB0WIQQNhkKjomWfgLCz0aQfewwSUazn0QUCZ9zfpQAKCRAfewwSUazn
# 0VVzAQDtmH3TGh1e5hX/y9g5W733DmUlG1haJ2VNYS+FljXdZQEAkZAe3opRuuoK
# FhXCHiMhCT0+bVfOuZ6sc6pVQb29Ag0=
# =vJ5O
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 20 Mar 2025 23:40:21 EDT
# gpg:                using EDDSA key 0D8642A3A2659F80B0B3D1A41F7B0C1251ACE7D1
# gpg: Good signature from "bibo mao <[email protected]>" [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: 7044 3A00 19C0 E97A 31C7  13C4 8E86 8FB7 A176 9D4C
#      Subkey fingerprint: 0D86 42A3 A265 9F80 B0B3  D1A4 1F7B 0C12 51AC E7D1

* tag 'pull-loongarch-20250321' of https://gitlab.com/bibo-mao/qemu:
  target/loongarch: fix bad shift in check_ps()
  docs/system: Add entry for LoongArch system
  host/include/loongarch64: Fix inline assembly compatibility with Clang

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: 3907add7a6016401e58e8dbe5b2ddfa06cd1f66a
      
https://github.com/qemu/qemu/commit/3907add7a6016401e58e8dbe5b2ddfa06cd1f66a
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-23 (Sun, 23 Mar 2025)

  Changed paths:
    M hw/intc/xive.c
    M hw/intc/xive2.c
    M hw/ppc/amigaone.c
    M hw/ppc/pnv.c
    M hw/ppc/pnv_bmc.c
    M hw/ppc/pnv_core.c
    M hw/ppc/pnv_occ.c
    M hw/ppc/pnv_pnor.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_cpu_core.c
    M hw/ppc/spapr_rtas.c
    M include/hw/ppc/pnv_pnor.h
    M target/ppc/cpu.h
    M target/ppc/cpu_init.c
    M target/ppc/excp_helper.c
    M target/ppc/translate/vmx-impl.c.inc
    M target/ppc/translate/vsx-impl.c.inc

  Log Message:
  -----------
  Merge tag 'pull-ppc-for-10.0-2-20250321' of https://gitlab.com/npiggin/qemu 
into staging

* Fix a KVM SMP guest hang. This is not completely trivial, but just
  small enough to merge it. If this causes any more problems, we can
  revert it and the timebase patch which exposed the underlying issue
  for release.
* Fix a bunch of Coverity issues reported introduced in ppc, mostly in
  powernv code.
* Fix a NetBSD boot bug on mac99 caused by VSX/VMX decodetree rewrite.
* Fix the default CPU selection for older spapr machines.

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEETkN92lZhb0MpsKeVZ7MCdqhiHK4FAmfdBbsACgkQZ7MCdqhi
# HK50jxAAi38NfsYBXBFSStwQKTBfbuhjDP2A1wiJVDrcJydQXnZb/xCR+kgRdiZt
# I5roIvD2bsbgHJtnCthLo0fQVGPIohsWUnnR6BlEAVN/gwW+8T+tNhLEZZ402+GK
# bzc4pxqtFitS9m5gyAat2g8bfLEEpEmUr2uAJXnPMDDrzSwtbtlUgPKGXfppsyhp
# P26Ut9M6dmPt+EMdJUTJ4RDOPuj53lXmDnbtpG9sA0zYXlG3sRe7nE9X0iKwXB4g
# Yher/IHSyHVqFe3t9TX9m/DY1EU8fFX/GoShoIMLk8v5Sy1viIsUXpWiIn9O3h1E
# WoAS6HvH3CdcHz3EC1XXSGEjEz2r75kPVvLC/wDy4DmXMxSnadodjGohbUkYs+26
# IV/Y3cnGTE2sPoP+vwmv7UKzBncKzTQO2luLkTQzX+x6XGr1MQPdAIm4WW9KfQVq
# VMS06/oqlQQ8gspAWpNo86P+8/hpFlN42dEE+mzARJkm1JNrO+0yMj8OB/og1o92
# T585TOpPDLm8ZeY8fETpgJ0rR4AKb+5e9KnbmS7XuvIWPK/G7OOt5gF8YXiT9yKw
# R77TPm7Evq6zJ9+TQ4KPBqn4LumphXiBWsSpsVcmZqTTf7nKqii0ZdO8asrtn8oN
# pgJ9AgAlnlCUIn4a/sDJ6k/HhC19IxyfC+y4bgsevwGOmo8H43s=
# =SYBy
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 21 Mar 2025 02:22:51 EDT
# gpg:                using RSA key 4E437DDA56616F4329B0A79567B30276A8621CAE
# gpg: Good signature from "Nicholas Piggin <[email protected]>" [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: 4E43 7DDA 5661 6F43 29B0  A795 67B3 0276 A862 1CAE

* tag 'pull-ppc-for-10.0-2-20250321' of https://gitlab.com/npiggin/qemu:
  target/ppc: Fix e200 duplicate SPRs
  target/ppc: Fix facility interrupt checks for VSX
  ppc/spapr: fix default cpu for pre-9.0 machines.
  ppc/amigaone: Constify default_env
  ppc/amigaone: Check blk_pwrite return value
  ppc/pnv: Fix system symbols in HOMER structure definitions
  ppc/pnv: Move the PNOR LPC address into struct PnvPnor
  ppc/spapr: Fix possible pa_features memory overflow
  ppc/xive2: Fix logical / bitwise comparison typo
  pnv/xive: Fix possible undefined shift error in group size calculation
  ppc/xive: Fix typo in crowd block level calculation
  ppc/spapr: Fix RTAS stopped state

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: 330ad56b13bd9794550e2e859ce6cede3e22cbcf
      
https://github.com/qemu/qemu/commit/330ad56b13bd9794550e2e859ce6cede3e22cbcf
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-23 (Sun, 23 Mar 2025)

  Changed paths:
    M .mailmap
    M Makefile
    M docs/system/devices/net.rst

  Log Message:
  -----------
  Merge tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu into staging

trivial patches for 2025-03-21

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEZKoqtTHVaQM2a/75gqpKJDselHgFAmfdIHgACgkQgqpKJDse
# lHgPChAAmwahVIuN3PQOEZxCYC91vwB7hu1ANCF1C96YIP1A4ybCeglkEtUPLgZn
# Jn7u5xzyOaIG5chlRxrc6mEq/AbYPj3N76rcBpX1XZiCabI7kqkiPShrOXL0FEK/
# +ULGv50D8cPMYHBWKrlgUOXo3LLrXDw4ct0DwdGDSy4O13raN2yAxnmui2KADnfX
# 9jszAspeELWgMXStBqobzMNL2SZy2n0BXBYMGWyrUOrzs0zDmQ0p5z12NwlN+ecg
# vChAF83Rk96rMRJ1Mx9Ewaf5ydAs1OwZk1HQO72+jKabUrJM111w/EJABPJFv9pY
# jhJgbQjUxXFmEdKHWtbrExrSAPOjzRlxG3Z3WDnM+W6zLrI7siDgxNrGbEuDo9ve
# 4DT8ldUuRkr4d1SwUq257RGu+qzTm2WvW7mkraCt+0NAPQNCZ22oZM7E79uKKv81
# 2XNKWr/0uElgUVgb+wOh0IWcCt8PDV4dkM8ivGNFmbP+z7+ckIJtXtWpD7/sHIzb
# zlMyUtbk7iDDqP7IwOiB19alcKHojOTeyXQAs/eZmnR8K0Rh6DaBYs5pMmVgou38
# 746POQteXsf78KzXCBG88WqbbI1cxZH8me9byFB9BRlTTVG/qo90OIzk+/A1x7uv
# 4uiVuzMcBtV3fp6r47V5Ru2HGonZAuaTbzTcWeJJ6rPm23MGNXg=
# =nng2
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 21 Mar 2025 04:16:56 EDT
# gpg:                using RSA key 64AA2AB531D56903366BFEF982AA4A243B1E9478
# gpg: Good signature from "Michael Tokarev <[email protected]>" [unknown]
# gpg:                 aka "Michael Tokarev <[email protected]>" [unknown]
# gpg:                 aka "Michael Tokarev <[email protected]>" [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: 9D8B E14E 3F2A 9DD7 9199  28F1 61AD 3D98 ECDF 2C8E
#      Subkey fingerprint: 64AA 2AB5 31D5 6903 366B  FEF9 82AA 4A24 3B1E 9478

* tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu:
  mailmap: Update email address for Akihiko Odaki
  docs: Explain how to use passt
  Makefile: "make dist" generates a .xz, not .bz2

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: c1fc2dd7892048e3ee70cc915db4aa6e5d007bab
      
https://github.com/qemu/qemu/commit/c1fc2dd7892048e3ee70cc915db4aa6e5d007bab
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-23 (Sun, 23 Mar 2025)

  Changed paths:
    M docs/interop/firmware.json
    M hw/loongarch/virt.c
    M hw/riscv/virt.c
    M hw/uefi/Kconfig
    M hw/uefi/var-service-core.c
    M hw/uefi/var-service-json.c

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

hw/uefi-vars: bug fixes
hw/uefi-vars: support riscv and loongarch
docs: update firmware.json spec

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEoDKM/7k6F6eZAf59TLbY7tPocTgFAmfdXR0ACgkQTLbY7tPo
# cThurBAA2xXMSS5HxU+8kAgkQQ5UC0c9cSQj//HJB5dAmsZ/I8WEgwv1+XLGnjf0
# SOpAiR0PshTipXdtcUVGpqufAghy+8WkAoYplMqY40o/Bsv8egQzb4XvNPSxqvon
# dTDmScn2ns1mtSOOY8LWSFIXFDlYK0uKyXcHSKvw/HNjYsVOb22IAokznyh9eZa0
# OwjhUc9oqTR0s8MrZbu+tKqEfoqGRMIDYVKk1vzjAigw6jfgvaUZ0dtldcwTktsH
# w7SyMowUJnNcjnzZxqchj94377feS4OG/QKO7LpnhfdYYHf7CT1BC72xG1Ivloma
# A3xK/AnFqbzYuwL3Mtmuk5xV5s98dP/dWvxTc7kZFT++fJ4bljnRhcyqckvWwHD5
# jYjm8ssAn2ukuVDM+O7+tRNMcyBXYc1pgmQCa10XjT0Ds0WulIynITwoguolvCPv
# rH/ILe8N2vXa7xxB7DledPMzX74+SWXaHv4n+SKEHoVlSiaP3M85ZNcSYjXf9P37
# hrMyUWgjO0AXJ2aDaCSn9nLJT8jRMcYh9HN03Y7KmyT0SZnksbHvPLF0kB1zFNfa
# NBQZUhZacu7iZoNpHx3uT+D1z9GM16S2skkxvryMrS/05iM6amc2kCJPxOp2vbYc
# eiyihjFHtW/dfhRmOG92EJ1FRMLx/dB/dBG90oGmTyHMlev6tEQ=
# =VN7r
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 21 Mar 2025 08:35:41 EDT
# gpg:                using RSA key A0328CFFB93A17A79901FE7D4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>" [full]
# gpg:                 aka "Gerd Hoffmann <[email protected]>" [full]
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>" [full]
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* tag 'uefi-20250321-pull-request' of https://gitlab.com/kraxel/qemu:
  docs/firmware: add feature flag for host uefi variable store
  hw/uefi-vars-sysbus: allow for loongarch virt
  hw/uefi-vars-sysbus: allow for riscv virt
  hw/uefi: fix error handling in uefi_vars_json_load
  hw/uefi: fix error handling in uefi_vars_json_save
  hw/uefi: flush variable store to disk in post load

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: cea9dfbc48607340a617be5372088d81fa79f41c
      
https://github.com/qemu/qemu/commit/cea9dfbc48607340a617be5372088d81fa79f41c
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-23 (Sun, 23 Mar 2025)

  Changed paths:
    M backends/cryptodev-lkcf.c
    M hw/loongarch/virt.c
    M hw/xen/xen-bus.c
    M net/vmnet-common.m
    M target/loongarch/kvm/kvm.c
    M target/loongarch/tcg/tlb_helper.c

  Log Message:
  -----------
  Merge tag 'pull-error-2025-03-21' of https://repo.or.cz/qemu/armbru into 
staging

Error reporting patches for 2025-03-21

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmfdeWkSHGFybWJydUBy
# ZWRoYXQuY29tAAoJEDhwtADrkYZTeigQAJicOKRQPm5qCn/XP70k6OuvTXsU8Fw/
# FVXE3I1lE9MnUDVHe9RgY79piS7oQ/pR92QcPxTx/Kj22gSiFBgrH5q0bURZAOxR
# /85DTxjVGuz3pAMhfXZ3rRyJGhX4MgPmYYXkvOyrz0cpHMR3DN9helIfdVfVtWAh
# VTVEH2PKdd9I56gbi9irlfdeh/+Nb2+1swBbtpUWFthDPj7Cib+gHsrJQbRX7qSf
# 0eEGVgqydfAuSLbMnD6SwCXbuJQ/mHg5+71QmSJFqthRzLHqXuUk6m6n8EXTgE6D
# MEdwkhSZ6ksNEWkzBvv3lfO8WnAqH0jp+xkuDTJabJzZG17pC61B2HQRsrFxZxqU
# Ftr4XDPccDc9ohX0GYwCpvfW2Y8ZLzjurc04dpSPoqIBZxAPySirWOmTbT7I6MFF
# EVt4VdjwXi0jSLWeH0yq6NmpSiKDxC6kY78xvAx6Pr9QQWtCeH/sQKXQ+16IqqTf
# aeM4zXUs8cWD+QULqkxp7aHJPg91zU+BQGopkmMCpCNGwnzJPajfJgCDsWHnn47z
# jiuOISWS650bUL6D4GgC1l2pYVPqt3ybF6DZL0giDE6NPpIich/KA1SSVXDy3bVK
# AGRMczC40GHvlDFKkLI0j5HM1HY8aYdn44skY28R/+SzyV0463u5oljcYmDe7oWC
# iLtinF/DKCDa
# =FJPm
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 21 Mar 2025 10:36:25 EDT
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Markus Armbruster <[email protected]>" [full]
# gpg:                 aka "Markus Armbruster <[email protected]>" [full]
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* tag 'pull-error-2025-03-21' of https://repo.or.cz/qemu/armbru:
  target/loongarch: Clean up virt_cpu_irq_init() error handling
  target/loongarch: Remove unnecessary temporary variable assignment
  hw/loongarch/virt: Eliminate error_propagate()
  target/loongarch: Fix error handling of KVM feature checks
  hw/xen: Downgrade a xen_bus_realize() non-error to warning
  hw/xen: Fix xen_bus_realize() error handling
  error: Strip trailing '\n' from an error string argument
  cryptodev: Fix error handling in cryptodev_lkcf_execute_task()

Signed-off-by: Stefan Hajnoczi <[email protected]>


  Commit: 71119ed3651622e1c531d1294839e9f3341adaf5
      
https://github.com/qemu/qemu/commit/71119ed3651622e1c531d1294839e9f3341adaf5
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2025-03-23 (Sun, 23 Mar 2025)

  Changed paths:
    M bsd-user/elfload.c
    M configs/devices/i386-softmmu/default.mak
    M hw/arm/Kconfig
    M hw/char/Kconfig
    M hw/char/meson.build
    M hw/core/loader.c
    M hw/core/qdev-properties.c
    M hw/i386/fw_cfg.c
    M hw/i386/pc.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/sparc/sun4m.c
    M hw/sparc64/sun4u.c
    M hw/timer/Kconfig
    M hw/timer/meson.build
    M include/exec/cpu-all.h
    M include/exec/poison.h
    M include/hw/char/pl011.h
    M include/hw/loader.h
    M include/hw/qdev-properties.h
    M linux-user/elfload.c
    M linux-user/syscall_defs.h
    M rust/hw/char/pl011/src/device.rs
    M rust/hw/char/pl011/src/device_class.rs
    M rust/hw/timer/Kconfig
    M rust/hw/timer/hpet/src/hpet.rs
    M rust/qemu-api/meson.build
    M rust/qemu-api/src/assertions.rs
    M rust/qemu-api/src/vmstate.rs
    M rust/qemu-api/tests/tests.rs
    A rust/qemu-api/tests/vmstate_tests.rs
    M rust/wrapper.h
    M tests/qtest/meson.build

  Log Message:
  -----------
  Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* exec/cpu-all: remove BSWAP_NEEDED
* pl011: pad C PL011State struct to same size as Rust struct
* rust: hpet: fix type of "timers" property
* rust: hpet: fix functional tests (and really everything that uses it)
* rust: Kconfig: Factor out whether devices are Rust or C
* rust: vmstate: Fixes and tests

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCgAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmfdsUsUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroOGpwf/Qk4bAcLX7A1/nOmYT+DtWzZ9V/VS
# hSOe6BruzW8rzwMyn/d7oR+aUpk3sL+v2iPBWqoZ/wh0w8kcABcUfWsqqGI8ln/K
# pnTdiC+hra5z0AFH1tmjjtOI50WDOeSjh5SFvoPJtGzhEbo89QvsUWgy98HiHOMm
# YFPDuhg3Pfd1XDcdoaa85sOHO1vDsj45fCEJhx6Ktib4vOlEm2I4Z9YR/JxNMT33
# vy/y09HG4cpc6bWKLPL3nqR9RchUSI+YRDZ8rlaXUowiZzH2K/wi0qJOsvG6oJF5
# awni0YWuwyFi16jmUub8NFnWk6NKjbACqw74AwoVPbNbDoCrrogXzIF2Lw==
# =NzCN
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri 21 Mar 2025 14:34:51 EDT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Paolo Bonzini <[email protected]>" [full]
# gpg:                 aka "Paolo Bonzini <[email protected]>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (24 commits)
  rust: hpet: fix decoding of timer registers
  rust/vmstate: Include complete crate path of VMStateFlags in vmstate_clock
  rust/vmstate: Add unit test for vmstate_validate
  rust/vmstate: Add unit test for pointer case
  rust/vmstate: Add unit test for vmstate_{of|struct} macro
  rust/vmstate: Add unit test for vmstate_of macro
  rust/vmstate: Support vmstate_validate
  rust/vmstate: Re-implement VMState trait for timer binding
  rust/vmstate: Relax array check when build varray in vmstate_struct
  rust/vmstate: Fix unnecessary VMState bound of with_varray_flag()
  rust/vmstate: Fix "cannot infer type" error in vmstate_struct
  rust/vmstate: Fix type check for varray in vmstate_struct
  rust/vmstate: Fix size field of VMStateField with VMS_ARRAY_OF_POINTER flag
  rust/vmstate: Fix num field when varray flags are set
  rust/vmstate: Fix num_offset in vmstate macros
  rust/vmstate: Remove unnecessary unsafe
  exec/cpu-all: remove BSWAP_NEEDED
  load_aout: replace bswap_needed with big_endian
  rust: pl011: Check size of state struct at compile time
  hw/char/pl011: Pad PL011State struct to same size as Rust impl
  ...

Signed-off-by: Stefan Hajnoczi <[email protected]>


Compare: https://github.com/qemu/qemu/compare/527dede083d3...71119ed36516

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

Reply via email to