Branch: refs/heads/staging-10.0
  Home:   https://github.com/qemu/qemu
  Commit: 5db9867076b75616711bd9084ffe57d54cbf7df2
      
https://github.com/qemu/qemu/commit/5db9867076b75616711bd9084ffe57d54cbf7df2
  Author: WANG Rui <[email protected]>
  Date:   2025-09-11 (Thu, 11 Sep 2025)

  Changed paths:
    M target/loongarch/cpu.c
    M target/loongarch/cpu.h
    M target/loongarch/tcg/insn_trans/trans_extra.c.inc
    M target/loongarch/translate.h

  Log Message:
  -----------
  target/loongarch: Add CRC feature flag and use it to gate CRC instructions

This patch replaces the obsolete IOCSR_BRD bit with CRC in cpucfg1[25],
in both LA464 and LA132 CPU initialization functions. The corresponding
field macro in `cpu.h` is updated to reflect this change.

Additionally, the availability macro `avail_CRC()` is introduced in
`translate.h` to check the CRC feature flag.

All CRC-related instruction translations are updated to be gated by
the new CRC feature flag instead of hardcoded CPU features.

This ensures correctness and configurability when enabling CRC
instructions based on hardware capabilities.

Signed-off-by: WANG Rui <[email protected]>
Reviewed-by: Bibo Mao <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Song Gao <[email protected]>
(cherry picked from commit 256df51e727235b3d5e937ca2784c45663c00f59)
(Mjt: pick this one up for 10.0.x so subsequent changes applies cleanly)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 5d383e0e3ee53af74cf22e2f04551c9df1899c93
      
https://github.com/qemu/qemu/commit/5d383e0e3ee53af74cf22e2f04551c9df1899c93
  Author: WANG Rui <[email protected]>
  Date:   2025-09-11 (Thu, 11 Sep 2025)

  Changed paths:
    M target/loongarch/tcg/insn_trans/trans_atomic.c.inc
    M target/loongarch/tcg/insn_trans/trans_extra.c.inc
    M target/loongarch/tcg/insn_trans/trans_farith.c.inc
    M target/loongarch/tcg/insn_trans/trans_fcnv.c.inc
    M target/loongarch/tcg/insn_trans/trans_fmemory.c.inc
    M target/loongarch/tcg/insn_trans/trans_privileged.c.inc
    M target/loongarch/tcg/insn_trans/trans_shift.c.inc
    M target/loongarch/translate.h

  Log Message:
  -----------
  target/loongarch: Guard 64-bit-only insn translation with TRANS64 macro

This patch replaces uses of the generic TRANS macro with TRANS64 for
instructions that are only valid when 64-bit support is available.

This improves correctness and avoids potential assertion failures or
undefined behavior during translation on 32-bit-only configurations.

Signed-off-by: WANG Rui <[email protected]>
Reviewed-by: Bibo Mao <[email protected]>
Reviewed-by: Song Gao <[email protected]>
Signed-off-by: Song Gao <[email protected]>
(cherry picked from commit 96e7448c1f820c56caea8447c01f5227b0c95c79)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: d3f77be407b663b26d644681e24ac3676f417c02
      
https://github.com/qemu/qemu/commit/d3f77be407b663b26d644681e24ac3676f417c02
  Author: Thomas Huth <[email protected]>
  Date:   2025-09-11 (Thu, 11 Sep 2025)

  Changed paths:
    M ui/vnc.c

  Log Message:
  -----------
  ui/vnc: Fix crash when specifying [vnc] without id in the config file

QEMU currently crashes when there is a [vnc] section in the config
file that does not have an "id = ..." line:

 $ echo "[vnc]" > /tmp/qemu.conf
 $ ./qemu-system-x86_64 -readconfig /tmp/qemu.conf
 qemu-system-x86_64: ../../devel/qemu/ui/vnc.c:4347: vnc_init_func:
  Assertion `id' failed.
 Aborted (core dumped)

The required "id" is only set up automatically while parsing the command
line, but not when reading the options from the config file.
Thus let's move code that automatically adds the id (if it does not
exist yet) to the init function that needs the id for the first time,
replacing the assert() statement there.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2836
Reviewed-by: Marc-André Lureau <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
(cherry picked from commit 38dd513263d814dc3cf554b899c118a46ca77577)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: ca3bc6e0a1eef5f51169014dffc13460450e1a83
      
https://github.com/qemu/qemu/commit/ca3bc6e0a1eef5f51169014dffc13460450e1a83
  Author: John Snow <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/qmp/legacy.py

  Log Message:
  -----------
  python: backport 'kick event queue on legacy event_pull()'

This corrects an oversight in qmp-shell operation where new events will
not accumulate in the event queue when pressing "enter" with an empty
command buffer, so no new events show up.

Reported-by: Jag Raman <[email protected]>
Signed-off-by: John Snow <[email protected]>
cherry picked from commit 
python-qemu-qmp@0443582d16cf9efd52b2c41a7b5be7af42c856cd
Reviewed-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 1e343714bfc06cc982e68a290f3809117d6dfcd0)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: ce44e28ed84123c66f340b94f0ce1410b3c08eec
      
https://github.com/qemu/qemu/commit/ce44e28ed84123c66f340b94f0ce1410b3c08eec
  Author: John Snow <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/qmp/protocol.py
    M python/qemu/qmp/qmp_tui.py
    M python/qemu/qmp/util.py
    M python/tests/protocol.py

  Log Message:
  -----------
  python: backport 'drop Python3.6 workarounds'

Now that the minimum version is 3.7, drop some of the 3.6-specific hacks
we've been carrying. A single remaining compatibility hack concerning
3.6's lack of @asynccontextmanager is addressed in the following commit.

Signed-off-by: John Snow <[email protected]>
cherry picked from commit 
python-qemu-qmp@3e8e34e594cfc6b707e6f67959166acde4b421b8
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit f9d2e0a3bd7ba2a693a892881f91cf53fa90cc71)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 83b8187abba7202e338fbad809339075ea44c563
      
https://github.com/qemu/qemu/commit/83b8187abba7202e338fbad809339075ea44c563
  Author: John Snow <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/qmp/protocol.py

  Log Message:
  -----------
  python: backport 'Use @asynciocontextmanager'

This removes a non-idiomatic use of a "coroutine callback" in favor of
something a bit more standardized.

Signed-off-by: John Snow <[email protected]>
cherry picked from commit python-qemu-qmp@commit 
97f7ffa3be17a50544b52767d14b6fd478c07b9e
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 0408b8d7a086486f5c1887798be744b2d73bcda9)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: d997c7ca7de0a37e7a42209d875c3a0192090cb1
      
https://github.com/qemu/qemu/commit/d997c7ca7de0a37e7a42209d875c3a0192090cb1
  Author: John Snow <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/qmp/qmp_shell.py

  Log Message:
  -----------
  python: backport 'qmp-shell-wrap: handle missing binary gracefully'

Signed-off-by: John Snow <[email protected]>
cherry picked from commit 
python-qemu-qmp@9c889dcbd58817b0c917a9d2dd16161f48ac8203
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit fcaeeb7653d2c6f38183170e1cae5729adb7875c)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: fd043dfa26d1fd005bbc5b9a33f99bee1db4e917
      
https://github.com/qemu/qemu/commit/fd043dfa26d1fd005bbc5b9a33f99bee1db4e917
  Author: John Snow <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/qmp/qmp_tui.py

  Log Message:
  -----------
  python: backport 'qmp-tui: Do not crash if optional dependencies are not met'

Based on the discussion at https://github.com/pypa/pip/issues/9726 -
even though the setuptools documentation implies that it is possible to
guard script execution with optional dependency groups, this is not true
in practice with the scripts generated by pip.

Just do the simple thing and guard the import statements.

Signed-off-by: John Snow <[email protected]>
cherry picked from commit 
python-qemu-qmp@df520dcacf9a75dd4c82ab1129768de4128b554c
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit fd0ed46d4effbf2700804657bad9c6db086527c4)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: b3725ab92d7565292bb0ecf609d1266ba136fbb4
      
https://github.com/qemu/qemu/commit/b3725ab92d7565292bb0ecf609d1266ba136fbb4
  Author: John Snow <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/qmp/legacy.py
    M python/qemu/qmp/qmp_tui.py
    M python/tests/protocol.py

  Log Message:
  -----------
  python: backport 'Remove deprecated get_event_loop calls'

This method was deprecated in 3.12 because it ordinarily should not be
used from coroutines; if there is not a currently running event loop,
this automatically creates a new event loop - which is usually not what
you want from code that would ever run in the bottom half.

In our case, we do want this behavior in two places:

(1) The synchronous shim, for convenience: this allows fully sync
programs to use QEMUMonitorProtocol() without needing to set up an event
loop beforehand. This is intentional to fully box in the async
complexities into the legacy sync shim.

(2) The qmp_tui shell; instead of relying on asyncio.run to create and
run an asyncio program, we need to be able to pass the current asyncio
loop to urwid setup functions. For convenience, again, we create one if
one is not present to simplify the creation of the TUI appliance.

The remaining user of get_event_loop() was in fact one of the erroneous
users that should not have been using this function: if there's no
running event loop inside of a coroutine, you're in big trouble :)

Signed-off-by: John Snow <[email protected]>
cherry picked from commit 
python-qemu-qmp@aa1ff9907603a3033296027e1bd021133df86ef1
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 5d99044d09db0fa8c2b3294e301927118f9effc9)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 00b265c018249ec33f7098300eefa87b5d9c4bdc
      
https://github.com/qemu/qemu/commit/00b265c018249ec33f7098300eefa87b5d9c4bdc
  Author: John Snow <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/qmp/legacy.py
    M python/qemu/qmp/qmp_tui.py
    M python/qemu/qmp/util.py

  Log Message:
  -----------
  python: backport 'avoid creating additional event loops per thread'

This commit is two backports squashed into one to avoid regressions.

python: *really* remove get_event_loop

A prior commit, aa1ff990, switched away from using get_event_loop *by
default*, but this is not good enough to avoid deprecation warnings as
`asyncio.get_event_loop_policy().get_event_loop()` is *also*
deprecated. Replace this mechanism with explicit calls to
asyncio.get_new_loop() and revise the cleanup mechanisms in __del__ to
match.

python: avoid creating additional event loops per thread

"Too hasty by far!", commit 21ce2ee4 attempted to avoid deprecated
behavior altogether by calling new_event_loop() directly if there was no
loop currently running, but this has the unfortunate side effect of
potentially creating multiple event loops per thread if tests
instantiate multiple QMP connections in a single thread. This behavior
is apparently not well-defined and causes problems in some, but not all,
combinations of Python interpreter version and platform environment.

Partially revert to Daniel Berrange's original patch, which calls
get_event_loop and simply suppresses the deprecation warning in
Python<=3.13. This time, however, additionally register new loops
created with new_event_loop() so that future calls to get_event_loop()
will return the loop already created.

Reported-by: Richard W.M. Jones <[email protected]>
Reported-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: John Snow <[email protected]>
cherry picked from commit 
python-qemu-qmp@21ce2ee4f2df87efe84a27b9c5112487f4670622
cherry picked from commit 
python-qemu-qmp@c08fb82b38212956ccffc03fc6d015c3979f42fe
Signed-off-by: John Snow <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 85f223e5b031eb8ab63fbca314a4fb296a3a2632)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 90dd727503aa0b1a162782f5ac1e692b0994a6b8
      
https://github.com/qemu/qemu/commit/90dd727503aa0b1a162782f5ac1e692b0994a6b8
  Author: Daniel P. Berrangé <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M tests/qemu-iotests/testenv.py
    M tests/qemu-iotests/testrunner.py

  Log Message:
  -----------
  iotests: drop compat for old version context manager

Our minimum python is now 3.9, so back compat with prior
python versions is no longer required.

Signed-off-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 82c7cb93c750196f513a1b11cb85e0328bad444f)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 058820db78dbbb698d94f75e2be1b0b519966fae
      
https://github.com/qemu/qemu/commit/058820db78dbbb698d94f75e2be1b0b519966fae
  Author: Daniel P. Berrangé <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M python/qemu/machine/qtest.py

  Log Message:
  -----------
  python: ensure QEMUQtestProtocol closes its socket

While QEMUQtestMachine closes the socket that was passed to
QEMUQtestProtocol, the python resource leak manager still
believes that the copy QEMUQtestProtocol holds is open. We
must explicitly call close to avoid this leak warnnig.

Signed-off-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 6ccb48ffc19fe25511313a246d4a8bad51114ea9)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 8b594a84ddcf8dfd9e0a41381610d5df615e0473
      
https://github.com/qemu/qemu/commit/8b594a84ddcf8dfd9e0a41381610d5df615e0473
  Author: Daniel P. Berrangé <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M tests/qemu-iotests/147

  Log Message:
  -----------
  iotests/147: ensure temporary sockets are closed before exiting

This avoids the python resource leak detector from issuing warnings
in the iotests.

Signed-off-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit d4d0ebfcc926c11d16320d0d5accf22e3441c115)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 38bef9dd0585c1448884d123608c3eb10db8b69f
      
https://github.com/qemu/qemu/commit/38bef9dd0585c1448884d123608c3eb10db8b69f
  Author: Daniel P. Berrangé <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M tests/qemu-iotests/151

  Log Message:
  -----------
  iotests/151: ensure subprocesses are cleaned up

The iotest 151 creates a bunch of subprocesses, with their stdout
connected to a pipe but never reads any data from them and does
not gurantee the processes are killed on cleanup.

This triggers resource leak warnings from python when the
subprocess.Popen object is garbage collected.

Signed-off-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 2b2fb25c2aaf5b2e8172d845db39cc50a951a12e)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: bb94b10551e6dd753235f12824247526fbb93a29
      
https://github.com/qemu/qemu/commit/bb94b10551e6dd753235f12824247526fbb93a29
  Author: Daniel P. Berrangé <[email protected]>
  Date:   2025-09-16 (Tue, 16 Sep 2025)

  Changed paths:
    M tests/qemu-iotests/check

  Log Message:
  -----------
  iotests/check: always enable all python warnings

Of most importance is that this gives us a heads-up if anything
we rely on has been deprecated. The default python behaviour
only emits a warning if triggered from __main__ which is very
limited.

Setting the env variable further ensures that any python child
processes will also display warnings.

Signed-off-by: Daniel P. Berrangé <[email protected]>
(cherry picked from commit 9a494d83538680651197651031375c2b6fa2490b)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 971efd8bf93fa18d0ee0baed1aa584afe72f3fe0
      
https://github.com/qemu/qemu/commit/971efd8bf93fa18d0ee0baed1aa584afe72f3fe0
  Author: Alex Bennée <[email protected]>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M .gitmodules

  Log Message:
  -----------
  .gitmodules: move u-boot mirrors to qemu-project-mirrors

To continue our GitLab Open Source Program license we need to pass an
automated license check for all repos under qemu-project. While U-Boot
is clearly GPLv2 rather than fight with the automated validation
script just move the mirror across to a separate project.

Signed-off-by: Alex Bennée <[email protected]>
Suggested-by: Daniel P. Berrangé <[email protected]>
Cc: [email protected]
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
(cherry picked from commit a11d1847d5ef8a7db58e6d4e44f36fec708f0981)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 8b182b66008f0d3e1d7c5ab660ea3779fa2d117a
      
https://github.com/qemu/qemu/commit/8b182b66008f0d3e1d7c5ab660ea3779fa2d117a
  Author: Michael Tokarev <[email protected]>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M tests/docker/dockerfiles/python.docker

  Log Message:
  -----------
  tests/docker/dockerfiles/python.docker: pull fedora:40 image instead of 
fedora:latest

All other fedora dockerfiles use fedora:40.
fedora:latest does not have python3.8 anymore,
so python minreq/etc tests are failing in 10.0.x.

This patch is specific to 10.0.x stable branch.
In master, support for python3.8 has been dropped.

Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 6cd9548f1f2355aeb9613a962d44834c70e79095
      
https://github.com/qemu/qemu/commit/6cd9548f1f2355aeb9613a962d44834c70e79095
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M .gitlab-ci.d/container-cross.yml
    M .gitlab-ci.d/crossbuilds.yml

  Log Message:
  -----------
  ci: run RISC-V cross jobs by default

The riscv64-debian-cross container is based on Trixie rather than sid
these days, so it is pretty much as stable as the others.  Enable it
by default.

Signed-off-by: Paolo Bonzini <[email protected]>
(cherry picked from commit eb8f7292e1315be0e36000a847b77153dcf460ef)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 2fbab04cbddc1f6cdb79b5231d7e2df2ab8de8bf
      
https://github.com/qemu/qemu/commit/2fbab04cbddc1f6cdb79b5231d7e2df2ab8de8bf
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

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

  Log Message:
  -----------
  rust: hpet: fix new warning

Nightly rustc complains that HPETAddrDecode has a lifetime but it is not
clearly noted that it comes from &self.  Apply the compiler's suggestion
to shut it up.

Reviewed-by: Zhao Liu <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
(cherry picked from commit 6b3fad084fc4e13901e252fe6c2a2c46ecea999b)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 4474802b0cd59fa14b603b953fa0bc8cc92783c0
      
https://github.com/qemu/qemu/commit/4474802b0cd59fa14b603b953fa0bc8cc92783c0
  Author: Stéphane Graber <[email protected]>
  Date:   2025-09-17 (Wed, 17 Sep 2025)

  Changed paths:
    M hw/usb/dev-network.c

  Log Message:
  -----------
  hw/usb/network: Remove hardcoded 0x40 prefix in STRING_ETHADDR response

USB NICs have a "40:" prefix hardcoded for all MAC addresses when we
return the guest the MAC address if it queries the STRING_ETHADDR USB
string property.  This doesn't match what we use for the
OID_802_3_PERMANENT_ADDRESS or OID_802_3_CURRENT_ADDRESS OIDs for
NDIS, or the MAC address we actually use in the QEMU networking code
to send/receive packets for this device, or the NIC info string we
print for users.  In all those other places we directly use
s->conf.macaddr.a, which is the full thing the user asks for.

This overrides user-provided configuration and leads to an inconsistent
experience.

I couldn't find any documented reason (comment or git commits) for
this behavior.  It seems like everyone is just expecting the MAC
address to be fully passed through to the guest, but it isn't.

This may have been a debugging hack that accidentally made it through
to the accepted patch: it has been in the code since it was originally
added back in 2008.

This is also particularly problematic as the "40:" prefix isn't a
reserved prefix for MAC addresses (IEEE OUI).  There are a number of
valid allocations out there which use this prefix, meaning that QEMU
may be causing MAC address conflicts.

Cc: [email protected]
Fixes: 6c9f886ceae5b ("Add CDC-Ethernet usb NIC (original patch from Thomas 
Sailer)"
Signed-off-by: Stéphane Graber <[email protected]>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2951
Reviewed-by: Daniel P. Berrangé <[email protected]>
[PMM: beef up commit message based on mailing list discussion]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
(cherry picked from commit aaf042299acf83919862c7d7dd5fc36acf4e0671)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 232d5c627589afc19535d19e11ad0001fa1330d0
      
https://github.com/qemu/qemu/commit/232d5c627589afc19535d19e11ad0001fa1330d0
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-18 (Thu, 18 Sep 2025)

  Changed paths:
    M system/physmem.c
    M target/i386/kvm/kvm-cpu.c
    M target/i386/kvm/kvm.c

  Log Message:
  -----------
  i386/cpu: Enable SMM cpu address space under KVM

Kirill Martynov reported assertation in cpu_asidx_from_attrs() being hit
when x86_cpu_dump_state() is called to dump the CPU state[*]. It happens
when the CPU is in SMM and KVM emulation failure due to misbehaving
guest.

The root cause is that QEMU i386 never enables the SMM address space for
cpu since KVM SMM support has been added.

Enable the SMM cpu address space under KVM when the SMM is enabled for
the x86machine.

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

Reported-by: Kirill Martynov <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Tested-by: Kirill Martynov <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
(cherry picked from commit 0516f4b70264b9710a25718d21bd35ef463c875e)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 15170fbd2bcf474063453e657362b8d510d47004
      
https://github.com/qemu/qemu/commit/15170fbd2bcf474063453e657362b8d510d47004
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-18 (Thu, 18 Sep 2025)

  Changed paths:
    M target/i386/cpu.h
    M target/i386/kvm/kvm-cpu.c
    M target/i386/kvm/kvm.c
    M target/i386/tcg/system/tcg-cpu.c

  Log Message:
  -----------
  target/i386: Define enum X86ASIdx for x86's address spaces

Define X86ASIdx as enum, like ARM's ARMASIdx, so that it's clear index 0
is for memory and index 1 is for SMM.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Zhao Liu <[email protected]>
Tested-By: Kirill Martynov <[email protected]>
Signed-off-by: Xiaoyao Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
(cherry picked from commit 591f817d819f5511fd9001dc863a326d23088811)
(Mjt: pick this change for completness with the previous one)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 819d59ae383edf2c275ffd56094a1d8e9db6af06
      
https://github.com/qemu/qemu/commit/819d59ae383edf2c275ffd56094a1d8e9db6af06
  Author: Xiaoyao Li <[email protected]>
  Date:   2025-09-18 (Thu, 18 Sep 2025)

  Changed paths:
    M pc-bios/multiboot_dma.bin
    M pc-bios/optionrom/multiboot.S

  Log Message:
  -----------
  multiboot: Fix the split lock

While running the kvm-unit-tests on Intel platforms with "split lock
disable" feature, every test triggers a kernel warning of

  x86/split lock detection: #AC: qemu-system-x86_64/373232 took a split_lock 
trap at address: 0x1e3

Hack KVM by exiting to QEMU on split lock #AC, we get

KVM: exception 17 exit (error code 0x0)
EAX=00000001 EBX=00000000 ECX=00000014 EDX=0001fb80
ESI=00000000 EDI=000000a8 EBP=00000000 ESP=00006f10
EIP=000001e3 EFL=00010002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0900 00009000 0000ffff 00009300 DPL=0 DS16 [-WA]
CS =c000 000c0000 0000ffff 00009b00 DPL=0 CS16 [-RA]
SS =0000 00000000 0000ffff 00009300 DPL=0 DS16 [-WA]
DS =c000 000c0000 0000ffff 00009300 DPL=0 DS16 [-WA]
FS =0950 00009500 0000ffff 00009300 DPL=0 DS16 [-WA]
GS =06f2 00006f20 0000ffff 00009300 DPL=0 DS16 [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     000c02b4 00000027
IDT=     00000000 000003ff
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 
DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
EFER=0000000000000000
Code=89 16 08 00 65 66 0f 01 16 06 00 66 b8 01 00 00 00 0f 22 c0 <65> 66 ff 2e 
00 00 b8 10 00 00 00 8e d0 8e d8 8e c0 8e e0 8e e8 66 b8 08 00 66 ba 10 05 66

And it matches with what disassembled from multiboo_dma.bin:

 #objdump -b binary -m i386 -D pc-bios/multiboot_dma.bin

  1d1:   08 00                   or     %al,(%eax)
  1d3:   65 66 0f 01 16          lgdtw  %gs:(%esi)
  1d8:   06                      push   %es
  1d9:   00 66 b8                add    %ah,-0x48(%esi)
  1dc:   01 00                   add    %eax,(%eax)
  1de:   00 00                   add    %al,(%eax)
  1e0:   0f 22 c0                mov    %eax,%cr0
> 1e3:   65 66 ff 2e             ljmpw  *%gs:(%esi)
  1e7:   00 00                   add    %al,(%eax)
  1e9:   b8 10 00 00 00          mov    $0x10,%eax
  1ee:   8e d0                   mov    %eax,%ss
  1f0:   8e d8                   mov    %eax,%ds
  1f2:   8e c0                   mov    %eax,%es
  1f4:   8e e0                   mov    %eax,%fs
  1f6:   8e e8                   mov    %eax,%gs
  1f8:   66 b8 08 00             mov    $0x8,%ax
  1fc:   66 ba 10 05             mov    $0x510,%dx

We can see that the instruction at 0x1e3 is a far jmp through the GDT.
However, the GDT is not 8 byte aligned, the base is 0xc02b4.

Intel processors follow the LOCK semantics to set the accessed flag of the
segment descriptor when loading a segment descriptor. If the the segment
descriptor crosses two cache line, it causes split lock.

Fix it by aligning the GDT on 8 bytes, so that segment descriptor cannot
span two cache lines.

Signed-off-by: Xiaoyao Li <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
(cherry picked from commit 4c8f69b94839f72314c69902312068d0b9b05a34)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 0ce28801d3bb602770e1bbe5eca90da8bd4360d7
      
https://github.com/qemu/qemu/commit/0ce28801d3bb602770e1bbe5eca90da8bd4360d7
  Author: Paolo Bonzini <[email protected]>
  Date:   2025-09-25 (Thu, 25 Sep 2025)

  Changed paths:
    M linux-user/strace.c

  Log Message:
  -----------
  linux-user: avoid -Werror=int-in-bool-context

linux-user is failing to compile on Fedora 43:

../linux-user/strace.c:57:66: error: enum constant in boolean context 
[-Werror=int-in-bool-context]
   57 | #define FLAG_BASIC(V, M, N)      { V, M | QEMU_BUILD_BUG_ON_ZERO(!(M)), 
N }

The warning does not seem to be too useful and we could even disable it,
but the workaround is simple in this case.

Cc: [email protected]
Cc: Richard Henderson <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
(cherry picked from commit db05b0d21ec1e0532cf5f5103ae6520a838d96f9)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: adc2c224395c561bcad37958d0ab5529c287d529
      
https://github.com/qemu/qemu/commit/adc2c224395c561bcad37958d0ab5529c287d529
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M target/sparc/translate.c

  Log Message:
  -----------
  target/sparc: Allow TRANS macro with no extra arguments

Use ## to drop the preceding comma if __VA_ARGS__ is empty.

Reviewed-by: Mark Cave-Ayland <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
(cherry picked from commit b7cd0a1821adf9906c5edb248394bb2a95482656)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: ce6e2f11742eab9a74b58444185a78c1d151a205
      
https://github.com/qemu/qemu/commit/ce6e2f11742eab9a74b58444185a78c1d151a205
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M target/sparc/insns.decode
    M target/sparc/translate.c

  Log Message:
  -----------
  target/sparc: Loosen decode of STBAR for v8

Solaris 8 appears to have a bug whereby it executes v9 MEMBAR
instructions when booting a freshly installed image. According
to the SPARC v8 architecture manual, whilst bits 13 and bits 12-0
of the "Read State Register Instructions" are notionally zero,
they are marked as unused (i.e. ignored).

Fixes: af25071c1d ("target/sparc: Move RDASR, STBAR, MEMBAR to decodetree")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3097
Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Mark Cave-Ayland <[email protected]>
Tested-by: Mark Cave-Ayland <[email protected]>
(cherry picked from commit b6cdd6c6050567c02a3b3cd428f85bb79d7455aa)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 6951dd08215ff66fe2e815400f84fcd6b2254c83
      
https://github.com/qemu/qemu/commit/6951dd08215ff66fe2e815400f84fcd6b2254c83
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M target/sparc/insns.decode
    M target/sparc/translate.c

  Log Message:
  -----------
  target/sparc: Loosen decode of RDY for v7

Bits [18:0] are not decoded with v7, and for v8 unused values
of rs1 simply produce undefined results.

Fixes: af25071c1d ("target/sparc: Move RDASR, STBAR, MEMBAR to decodetree")
Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Mark Cave-Ayland <[email protected]>
Tested-by: Mark Cave-Ayland <[email protected]>
(cherry picked from commit 49d669ccf33a772e3baf3fe4ebb996dc015f46c1)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 731df89ac0dffa730c1d9174869c25cd0824b38a
      
https://github.com/qemu/qemu/commit/731df89ac0dffa730c1d9174869c25cd0824b38a
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M target/sparc/insns.decode

  Log Message:
  -----------
  target/sparc: Loosen decode of RDPSR for v7

For v7, bits [18:0] are ignored.
For v8, bits [18:14] are reserved and bits [13:0] are ignored.

Fixes: 668bb9b755e ("target/sparc: Move RDPSR, RDHPR to decodetree")
Reviewed-by: Mark Cave-Ayland <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
(cherry picked from commit a0345f628394fbd001276c80fd02c8ad0d1b7ee2)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 84505fd162a098c9233f8535fa88f7f976a768b7
      
https://github.com/qemu/qemu/commit/84505fd162a098c9233f8535fa88f7f976a768b7
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M target/sparc/insns.decode

  Log Message:
  -----------
  target/sparc: Loosen decode of RDWIM for v7

For v7, bits [18:0] are ignored.
For v8, bits [18:14] are reserved and bits [13:0] are ignored.

Fixes: 5d617bfba07 ("target/sparc: Move RDWIM, RDPR to decodetree")
Reviewed-by: Mark Cave-Ayland <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
(cherry picked from commit dc9678cc9725d6c3053c6f110f162d956eb9d48f)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: b22876f27dc690bfa51a31677d4df2a399168845
      
https://github.com/qemu/qemu/commit/b22876f27dc690bfa51a31677d4df2a399168845
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M target/sparc/insns.decode

  Log Message:
  -----------
  target/sparc: Loosen decode of RDTBR for v7

For v7, bits [18:0] are ignored.
For v8, bits [18:14] are reserved and bits [13:0] are ignored.

Fixes: e8325dc02d0 ("target/sparc: Move RDTBR, FLUSHW to decodetree")
Reviewed-by: Mark Cave-Ayland <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
(cherry picked from commit 6ff52f9dee064d3c2138426834320f5877863d9b)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 5d6c277b493ef2ad093cfeee5022eedf93d88f4c
      
https://github.com/qemu/qemu/commit/5d6c277b493ef2ad093cfeee5022eedf93d88f4c
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M target/sparc/translate.c

  Log Message:
  -----------
  target/sparc: Relax decode of rs2_or_imm for v7

For v7, bits [12:5] are ignored for !imm.
For v8, those same bits are reserved, but are not trapped.

Reviewed-by: Mark Cave-Ayland <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
(cherry picked from commit df663ac0a4e5d916b6b3e77552a925fec02bced4)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 212d9c0fd50e9a8e2d4fc341d1d392aa296392db
      
https://github.com/qemu/qemu/commit/212d9c0fd50e9a8e2d4fc341d1d392aa296392db
  Author: Peter Maydell <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M hw/pci-host/dino.c

  Log Message:
  -----------
  hw/pci-host/dino: Don't call pci_register_root_bus() in init

In the dino PCI host bridge device, we call pci_register_root_bus()
in the device's instance_init. This is a problem for two reasons
 * the PCI bridge is then available to the rest of the simulation
   (e.g. via pci_qdev_find_device()), even though it hasn't
   yet been realized
 * we do not attempt to unregister in an instance_deinit,
   which means that if you go through an instance_init -> deinit
   lifecycle the freed memory for the host-bridge device is
   left on the pci_host_bridges list

ASAN reports the resulting use-after-free:

==1771223==ERROR: AddressSanitizer: heap-use-after-free on address 
0x527000018f80 at pc 0x5b4b9d3369b5 bp 0x7ffd01929980 sp 0x7ffd01929978
WRITE of size 8 at 0x527000018f80 thread T0
    #0 0x5b4b9d3369b4 in pci_host_bus_register 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:608:5
    #1 0x5b4b9d321566 in pci_root_bus_internal_init 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:677:5
    #2 0x5b4b9d3215e0 in pci_root_bus_new 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:706:5
    #3 0x5b4b9d321fe5 in pci_register_root_bus 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:751:11
    #4 0x5b4b9d390521 in dino_pcihost_init 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci-host/dino.c:473:16

0x527000018f80 is located 1664 bytes inside of 12384-byte region 
[0x527000018900,0x52700001b960)
freed by thread T0 here:
    #0 0x5b4b9cab185a in free 
(/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/qemu-system-hppa+0x17ad85a)
 (BuildId: ca496bb2e4fc750ebd289b448bad8d99c0ecd140)
    #1 0x5b4b9e3ee723 in object_finalize 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:734:9
    #2 0x5b4b9e3e69db in object_unref 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:1232:9
    #3 0x5b4b9ea6173c in qmp_device_list_properties 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:237:5
    #4 0x5b4b9ec4e0f3 in qmp_marshal_device_list_properties 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/qapi/qapi-commands-qdev.c:65:14

previously allocated by thread T0 here:
    #0 0x5b4b9cab1af3 in malloc 
(/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/qemu-system-hppa+0x17adaf3)
 (BuildId: ca496bb2e4fc750ebd289b448bad8d99c0ecd140)
    #1 0x799d8270eb09 in g_malloc 
(/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x62b09) (BuildId: 
1eb6131419edb83b2178b682829a6913cf682d75)
    #2 0x5b4b9e3e75fc in object_new_with_type 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:767:15
    #3 0x5b4b9e3e7409 in object_new_with_class 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:782:12
    #4 0x5b4b9ea609a5 in qmp_device_list_properties 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:206:11

where we allocated one instance of the dino device, put it on the
list, freed it, and then trying to allocate a second instance touches
the freed memory on the pci_host_bridges list.

Fix this by deferring all the setup of memory regions and registering
the PCI bridge to the device's realize method.  This brings it into
line with almost all other PCI host bridges, which call
pci_register_root_bus() in realize.

Cc: [email protected]
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3118
Fixes: 63901b6cc4d8b4 ("dino: move PCI bus initialisation to 
dino_pcihost_init()")
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Alex Bennée <[email protected]>
Tested-by: Alex Bennée <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-ID: <[email protected]>
(cherry picked from commit e4a1b308b27cd77338b8f05d3a31e6b38eb717c7)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 837030e11c9f564f4441b5c26a2d198a8499d76a
      
https://github.com/qemu/qemu/commit/837030e11c9f564f4441b5c26a2d198a8499d76a
  Author: Peter Maydell <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M hw/pci-host/astro.c

  Log Message:
  -----------
  hw/pci-host/astro: Don't call pci_regsiter_root_bus() in init

In the astro PCI host bridge device, we call pci_register_root_bus()
in the device's instance_init. This is a problem for two reasons
 * the PCI bridge is then available to the rest of the simulation
   (e.g. via pci_qdev_find_device()), even though it hasn't
   yet been realized
 * we do not attempt to unregister in an instance_deinit,
   which means that if you go through an instance_init -> deinit
   lifecycle the freed memory for the host-bridge device is
   left on the pci_host_bridges list

ASAN reports the resulting use-after-free:

==1776584==ERROR: AddressSanitizer: heap-use-after-free on address 
0x51f00000cb00 at pc 0x5b2d460a89b5 bp 0x7ffef7617f50 sp 0x7ffef7617f48
WRITE of size 8 at 0x51f00000cb00 thread T0
    #0 0x5b2d460a89b4 in pci_host_bus_register 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:608:5
    #1 0x5b2d46093566 in pci_root_bus_internal_init 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:677:5
    #2 0x5b2d460935e0 in pci_root_bus_new 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:706:5
    #3 0x5b2d46093fe5 in pci_register_root_bus 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci/pci.c:751:11
    #4 0x5b2d46fe2335 in elroy_pcihost_init 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../hw/pci-host/astro.c:455:16

0x51f00000cb00 is located 1664 bytes inside of 3456-byte region 
[0x51f00000c480,0x51f00000d200)
freed by thread T0 here:
    #0 0x5b2d4582385a in free 
(/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/qemu-system-hppa+0x17ad85a)
 (BuildId: 692b49eedc6fb0ef618bbb6784a09311b3b7f1e8)
    #1 0x5b2d47160723 in object_finalize 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:734:9
    #2 0x5b2d471589db in object_unref 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:1232:9
    #3 0x5b2d477d373c in qmp_device_list_properties 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:237:5

previously allocated by thread T0 here:
    #0 0x5b2d45823af3 in malloc 
(/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/qemu-system-hppa+0x17adaf3)
 (BuildId: 692b49eedc6fb0ef618bbb6784a09311b3b7f1e8)
    #1 0x79728fa08b09 in g_malloc 
(/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x62b09) (BuildId: 
1eb6131419edb83b2178b682829a6913cf682d75)
    #2 0x5b2d471595fc in object_new_with_type 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:767:15
    #3 0x5b2d47159409 in object_new_with_class 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/object.c:782:12
    #4 0x5b2d477d29a5 in qmp_device_list_properties 
/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/hppa-asan/../../qom/qom-qmp-cmds.c:206:11

Cc: [email protected]
Fixes: e029bb00a79be ("hw/pci-host: Add Astro system bus adapter found on 
PA-RISC machines")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3118
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Alex Bennée <[email protected]>
Tested-by: Alex Bennée <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-ID: <[email protected]>
(cherry picked from commit 76d2b8d42adb0db2d1ccd08a626f25ddd30208a8)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 1207071390cb9f283cefb246d9f21610cbf79021
      
https://github.com/qemu/qemu/commit/1207071390cb9f283cefb246d9f21610cbf79021
  Author: WANG Rui <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M tcg/optimize.c

  Log Message:
  -----------
  tcg/optimize: Fix folding of vector bitsel

It looks like a typo. When the false value (C) is the constant -1, the
correct fold should be: R = B | ~A

Reproducer (LoongArch64 assembly):

     .text
     .globl  _start
 _start:
     vldi    $vr1, 3073
     vldi    $vr2, 1023
     vbitsel.v       $vr0, $vr2, $vr1, $vr2
     vpickve2gr.d    $a1, $vr0, 1
     xori    $a0, $a1, 1
     li.w    $a7, 93
     syscall 0

Fixes: e58b977238e3 ("tcg/optimize: Optimize bitsel_vec")
Link: https://github.com/llvm/llvm-project/issues/159610
Signed-off-by: WANG Rui <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Message-ID: <[email protected]>
(cherry picked from commit a50347a4145faf6d409afd4b9b682c8b3e60854a)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: f37412622d5909fb78c1fe297d27c3bde41f4e56
      
https://github.com/qemu/qemu/commit/f37412622d5909fb78c1fe297d27c3bde41f4e56
  Author: Peter Maydell <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

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

  Log Message:
  -----------
  .gitlab-ci.d/buildtest.yml: Unset CI_COMMIT_DESCRIPTION for htags

In commit 52a21689cd829 we added a workaround for a bug in older
versions of htags where they fail with a weird error message if the
environment is too large.  However, we missed one variable which
gitlab CI can set to the body of the commit message:
CI_COMMIT_DESCRIPTION.

Add this to the variables we unset when running htags, so that
the 'pages' job doesn't fail if the most recent commit happens
to have a very large commit message.

Cc: [email protected]
Fixes: 52a21689cd8 (".gitlab-ci.d/buildtest.yml: Work around htags bug when 
environment is large")
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Alex Bennée <[email protected]>
Reviewed-by: Daniel P. Berrangé <[email protected]>
Message-ID: <[email protected]>
Signed-off-by: Thomas Huth <[email protected]>
(cherry picked from commit fd34f56fe886250bdd64f9c222c1cb4c07a594ad)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 71f198239fc93b2fcaa31f0437f0df30b69f98b4
      
https://github.com/qemu/qemu/commit/71f198239fc93b2fcaa31f0437f0df30b69f98b4
  Author: Thomas Huth <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M tests/Makefile.include

  Log Message:
  -----------
  tests: Fix "make check-functional" for targets without thorough tests

If QEMU gets configured for a single target that does not have
any thorough functional tests, "make check-functional" currently
fails with the error message "No rule to make target 'check-func'".
This happens because "check-func" only gets defined for thorough
tests (quick ones get added to "check-func-quick" instead).
The same problem can happen with the quick tests for targets that
do not have any functional test at all. To fix it, simply make sure
that the targets are always available in the Makefile.

Reported-by: Peter Maydell <[email protected]>
Closes: https://gitlab.com/qemu-project/qemu/-/issues/3119
Signed-off-by: Thomas Huth <[email protected]>
Message-ID: <[email protected]>
(cherry picked from commit 4f1ebc7712a7db61155080164f2169320d033559)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: 3e55f8282ac7f7f6f638cfe78bd0d6067f7f4236
      
https://github.com/qemu/qemu/commit/3e55f8282ac7f7f6f638cfe78bd0d6067f7f4236
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M accel/tcg/tb-maint.c

  Log Message:
  -----------
  accel/tcg: Properly unlink a TB linked to itself

When we remove dest from orig's links, we lose the link
that we rely on later to reset links.  This can lead to
failure to release from spinlock with self-modifying code.

Cc: [email protected]
Reported-by: 李威威 <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Anton Johansson <[email protected]>
Tested-by: Anton Johansson <[email protected]>
(cherry picked from commit 03fe6659803f83690b8587d01f8ee56bb4be4b90)
Signed-off-by: Michael Tokarev <[email protected]>


  Commit: a0c98ef864c324a3d8310e95f0b7a4db2441c86c
      
https://github.com/qemu/qemu/commit/a0c98ef864c324a3d8310e95f0b7a4db2441c86c
  Author: Richard Henderson <[email protected]>
  Date:   2025-09-26 (Fri, 26 Sep 2025)

  Changed paths:
    M tests/tcg/multiarch/Makefile.target
    A tests/tcg/multiarch/tb-link.c

  Log Message:
  -----------
  tests/tcg/multiarch: Add tb-link test

Signed-off-by: Richard Henderson <[email protected]>
(cherry picked from commit e13e1195db8af18e149065a59351ea85215645bb)
Signed-off-by: Michael Tokarev <[email protected]>


Compare: https://github.com/qemu/qemu/compare/80949aa0e355...a0c98ef864c3

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


Reply via email to