<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qemu/qemu.git, branch stable-11.0</title>
<subtitle>QEMU main repository</subtitle>
<id>https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/atom?h=stable-11.0</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/atom?h=stable-11.0'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/'/>
<updated>2026-06-25T11:08:38+00:00</updated>
<entry>
<title>Update version for 11.0.2 release</title>
<updated>2026-06-25T11:08:38+00:00</updated>
<author>
<name>Michael Tokarev</name>
<email>mjt@tls.msk.ru</email>
</author>
<published>2026-06-25T11:08:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=e545d8bb9d63e9dd61542b88463183314cff9482'/>
<id>urn:sha1:e545d8bb9d63e9dd61542b88463183314cff9482</id>
<content type='text'>
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>linux-user: Fix AT_PHDR when program headers are relocated into their own segment</title>
<updated>2026-06-24T13:34:52+00:00</updated>
<author>
<name>Akshit Yadav</name>
<email>valium7171@gmail.com</email>
</author>
<published>2026-06-13T15:21:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=1a212f09dfd642738536f97f74889b94fd953454'/>
<id>urn:sha1:1a212f09dfd642738536f97f74889b94fd953454</id>
<content type='text'>
When a binary is patched or relocated such that the program header table is
moved into a separate PT_LOAD segment (rather than sitting at the start of the
first loadable segment), QEMU's AT_PHDR auxv entry becomes incorrect. The
loader was computing AT_PHDR as load_addr + e_phoff, which assumes the headers
are mapped 1:1 from file offset 0. This breaks when the headers are elsewhere.

The Linux kernel instead locates the PT_LOAD segment that contains e_phoff,
then computes the in-memory address as p_vaddr + (e_phoff - p_offset). This
correctly handles relocated headers.

Fix by:
1. Add phdr_addr field to image_info to cache the resolved address.
2. Initialize to load_addr + e_phoff (fallback for headers outside any PT_LOAD).
3. In the PT_LOAD mapping loop, detect if the segment contains e_phoff and
   override with the segment-relative address.
4. Use info-&gt;phdr_addr for AT_PHDR instead of the incorrect formula.

Signed-off-by: Akshit Yadav &lt;valium7171@gmail.com&gt;
Reviewed-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit 156e536a7b9700018aaa2437072c14e3376340a7)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>hw/pci: Replace assert with bounds check and return</title>
<updated>2026-06-24T13:34:52+00:00</updated>
<author>
<name>Aditya Gupta</name>
<email>adityag@linux.ibm.com</email>
</author>
<published>2026-03-26T19:04:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=eb6e366ec97b463f475eb54f8feb18a862e959ac'/>
<id>urn:sha1:eb6e366ec97b463f475eb54f8feb18a862e959ac</id>
<content type='text'>
As reported in https://gitlab.com/qemu-project/qemu/-/work_items/3334,
callers of 'pci_host_config_{read,write}_common' can pass length as 8,
causing an assert failure

The original issue with pnv_phb3 triggering the assert was fixed in a
previous commit

Instead of asserting on invalid length, check if the length is valid
(&lt;=4), otherwise return (with the failure error code in read)

Reported-by: Zexiang Zhang &lt;chan9yan9@gmail.com&gt;
Signed-off-by: Aditya Gupta &lt;adityag@linux.ibm.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-Id: &lt;20260326190438.734239-3-adityag@linux.ibm.com&gt;
(cherry picked from commit c7209c56718107fefd5deae140a450954d31ff2b)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>ppc/pnv_phb3: Error out on invalid config access</title>
<updated>2026-06-24T13:34:52+00:00</updated>
<author>
<name>Aditya Gupta</name>
<email>adityag@linux.ibm.com</email>
</author>
<published>2026-03-26T19:04:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=2fbc7d3258a1d435563b0062720379bef41dce4e'/>
<id>urn:sha1:2fbc7d3258a1d435563b0062720379bef41dce4e</id>
<content type='text'>
PHB in Power8 supports 8 byte registers, and hence the ops structure
allows accessing of 8 bytes in 'pnv_phb3_reg_ops'

Both 'pnv_phb3_reg_read' &amp; 'pnv_phb3_reg_write' pass the arguments as is
to 'pnv_phb3_config_{read,write}', if offset is PHB_CONFIG_DATA.

This when called with size as 8, causes following assert failure in
'pci_host_config_read_common' &amp; 'pci_host_config_write_common':

    assert(len &lt;= 4);

Validate that size is &lt;=4, before jumping to pci_host_config_{read,write}_common

Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3334
Reported-by: Zexiang Zhang &lt;chan9yan9@gmail.com&gt;
Fixes: 9ae1329ee2fe ("ppc/pnv: Add models for POWER8 PHB3 PCIe Host bridge")
Signed-off-by: Aditya Gupta &lt;adityag@linux.ibm.com&gt;
Reviewed-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-Id: &lt;20260326190438.734239-2-adityag@linux.ibm.com&gt;
(cherry picked from commit 218109781209f9d77242b2cdf743acac8bc3b893)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>linux-user/xtensa: fix unlock of uninitialized frame pointer on sigreturn</title>
<updated>2026-06-24T13:34:52+00:00</updated>
<author>
<name>Matt Turner</name>
<email>mattst88@gmail.com</email>
</author>
<published>2026-06-18T13:33:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=a35a6ea811906cd1139b15158741c2cc41684a4a'/>
<id>urn:sha1:a35a6ea811906cd1139b15158741c2cc41684a4a</id>
<content type='text'>
If lock_user_struct fails, frame is uninitialized but the badframe
label unconditionally calls unlock_user_struct on it. Handle the
lock failure inline so badframe is only reached with a valid lock.

Signed-off-by: Matt Turner &lt;mattst88@gmail.com&gt;
Cc: qemu-stable@nongnu.org
Reviewed-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit 54e08dbe8f2aeca57e3b1a5eab09a9fec88c1c67)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>linux-user/xtensa: save/restore FP registers across signal delivery</title>
<updated>2026-06-24T13:34:52+00:00</updated>
<author>
<name>Matt Turner</name>
<email>mattst88@gmail.com</email>
</author>
<published>2026-06-12T14:14:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=325a52f543a3887ef1bf4318208f8116ae68c451'/>
<id>urn:sha1:325a52f543a3887ef1bf4318208f8116ae68c451</id>
<content type='text'>
Add support for saving and restoring f0-f15 across signal delivery.
The target_xtensa_xtregs_fp struct carries 32-bit f-regs for cores
with XTENSA_OPTION_FP_COPROCESSOR; target_xtensa_xtregs_dfp carries
64-bit f-regs for cores with XTENSA_OPTION_DFP_COPROCESSOR.

Lock the xtregs region via lock_user before reading on sigreturn,
since sc_xtregs is a user-space pointer that may lie outside the
locked sigframe.

Signed-off-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit 6858e3a71cc41510937bec0950eb4e42e33ba5f2)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>target/xtensa: add cpu_set_fcr/fsr helpers to sync fp_status</title>
<updated>2026-06-24T13:34:52+00:00</updated>
<author>
<name>Matt Turner</name>
<email>mattst88@gmail.com</email>
</author>
<published>2026-06-10T15:25:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=0e656ebb28d3b65753c85d05cfae67862eecc696'/>
<id>urn:sha1:0e656ebb28d3b65753c85d05cfae67862eecc696</id>
<content type='text'>
Factor FCR→fp_status and FSR→fp_status synchronisation out of the
wur_fpu{2k,}_fcr/wur_fpu_fsr helpers into cpu_set_fcr(), cpu_set_fsr(),
and cpu_get_fsr(). Signal delivery code needs to restore the FP rounding
mode and exception flags without duplicating the flag-mapping tables.

cpu_set_fcr() applies the union mask 0xfffff07f (superset of the
wur_fpu_fcr mask 0x0000007f and the wur_fpu2k_fcr mask 0xfffff07f) so
that FCR bits valid only on fpu2k configs are preserved while MBZ bits
7-11 are always cleared.

Signed-off-by: Matt Turner &lt;mattst88@gmail.com&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit 7e859bacea09a626c239f14ab9c01f13d5225723)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>target/arm/hvf: Stop pre-allocating cpreg_vmstate arrays</title>
<updated>2026-06-24T13:34:52+00:00</updated>
<author>
<name>Scott J. Goldman</name>
<email>scottjgo@gmail.com</email>
</author>
<published>2026-04-27T23:21:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=271af539f55afa4e7e351141c198d8119c37941d'/>
<id>urn:sha1:271af539f55afa4e7e351141c198d8119c37941d</id>
<content type='text'>
Commit ab2ddc7b66 ("target/arm/machine: Use VMSTATE_VARRAY_INT32_ALLOC
for cpreg arrays") moved cpreg_vmstate_indexes / cpreg_vmstate_values
to be allocated by VMSTATE_VARRAY_INT32_ALLOC and added an assertion
in cpu_pre_load() that they are NULL on entry. The same commit dropped
the redundant g_renew()/array_len assignments from the kvm, whpx and
helper.c cpu init paths, but the hvf cpu init path still pre-allocates
them.

The result is that loading a snapshot or migration stream into an HVF
guest immediately aborts:

    ERROR:target/arm/machine.c:1043:cpu_pre_load:
        assertion failed: (!cpu-&gt;cpreg_vmstate_indexes)

Drop the leftover cpreg_vmstate_indexes / cpreg_vmstate_values
allocations and the cpreg_vmstate_array_len assignment from
hvf_arch_init_vcpu(), matching what was already done for the other
arm accelerators.

Signed-off-by: Scott J. Goldman &lt;scottjgo@gmail.com&gt;
Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Signed-off-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
(cherry picked from commit 06fd39e426bbd3a68e50fc847892e7448174ce2f)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>ui/sdl2: Set GL ES profile before creating initial GL context</title>
<updated>2026-06-24T13:34:35+00:00</updated>
<author>
<name>Ryan Zhang</name>
<email>ryan.zhang@nxp.com</email>
</author>
<published>2026-05-15T11:21:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=2fea2615754ea8076e7fc59d2f16c992b255536a'/>
<id>urn:sha1:2fea2615754ea8076e7fc59d2f16c992b255536a</id>
<content type='text'>
When the user selects GLES via '-display sdl,gl=es', we need to set
SDL_GL_CONTEXT_PROFILE_MASK to SDL_GL_CONTEXT_PROFILE_ES before
calling SDL_GL_CreateContext(). This ensures SDL_GL_LoadLibrary()
loads the correct GLES driver instead of the desktop OpenGL driver.

Fix the below issue: qemu-system-aarch64: /usr/src/debug/libepoxy
/1.5.10/src/dispatch_common.c:872: epoxy_get_proc_address: Assertion
`0 &amp;&amp; "Couldn't find current GLX or EGL context.\n"' failed.

sdl2_gl_create_context() already sets the profile mask correctly for
ES mode, but the initial context created in sdl2_window_create() is
missing the same treatment.

Fixes:da3f7a3ab9ea0091955b58f8909dfcee01f4043e ("ui/sdl: try to instantiate the matching opengl renderer")

Signed-off-by: ryan.zhang@nxp.com
Reviewed-by: Marc-André Lureau &lt;marcandre.lureau@redhat.com&gt;
Message-ID: &lt;DU2PR04MB9018BB3650BA218438C01F2A83042@DU2PR04MB9018.eurprd04.prod.outlook.com&gt;
(cherry picked from commit 490a3e1867f025c68fa13db766b5c8da16c6eca4)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>ui/sdl2: Explicitly specify EGL platform</title>
<updated>2026-06-24T07:36:22+00:00</updated>
<author>
<name>Akihiko Odaki</name>
<email>odaki@rsg.ci.i.u-tokyo.ac.jp</email>
</author>
<published>2026-06-11T11:58:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=45ebaadb273f4abe7f47a21081341ad0618648b0'/>
<id>urn:sha1:45ebaadb273f4abe7f47a21081341ad0618648b0</id>
<content type='text'>
Mesa's eglGetDisplay() chooses the native EGL platform from
EGL_PLATFORM, limited autodetection, or the build-time default. If that
selects Wayland while SDL is using the X11 video backend, Mesa can treat
the X11 Display pointer as a wl_display and crash during eglInitialize().

Probe EGL with the X11 platform explicitly before enabling
SDL_HINT_VIDEO_X11_FORCE_EGL.

Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3540
Signed-off-by: Akihiko Odaki &lt;odaki@rsg.ci.i.u-tokyo.ac.jp&gt;
Reviewed-by: Marc-André Lureau &lt;marcandre.lureau@redhat.com&gt;
Message-ID: &lt;20260611-sdl-v1-1-93d4a51684bb@rsg.ci.i.u-tokyo.ac.jp&gt;
(cherry picked from commit 6157908503f9a5a14d17a8ecf8cc3308107e1458)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
</feed>
