<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qemu/qemu.git, branch v10.2.4</title>
<subtitle>QEMU main repository</subtitle>
<id>https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/atom?h=v10.2.4</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/atom?h=v10.2.4'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/'/>
<updated>2026-06-25T11:09:07+00:00</updated>
<entry>
<title>Update version for 10.2.4 release</title>
<updated>2026-06-25T11:09:07+00:00</updated>
<author>
<name>Michael Tokarev</name>
<email>mjt@tls.msk.ru</email>
</author>
<published>2026-06-25T11:09:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=3e0bcba1ca7d6607ca49a988d165f052a3a53323'/>
<id>urn:sha1:3e0bcba1ca7d6607ca49a988d165f052a3a53323</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:35:22+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=dd0ee6af65a522f2af54728a5d4e7d14530587e5'/>
<id>urn:sha1:dd0ee6af65a522f2af54728a5d4e7d14530587e5</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:35:22+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=c4bd8d75696adbb906b192c637bf234f720b95da'/>
<id>urn:sha1:c4bd8d75696adbb906b192c637bf234f720b95da</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:35:22+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=7f9d07e21793cad61379ac8ade34dee77bd14366'/>
<id>urn:sha1:7f9d07e21793cad61379ac8ade34dee77bd14366</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:35:22+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=bceecd60f404c7347936ad91a63c7178aad1ca90'/>
<id>urn:sha1:bceecd60f404c7347936ad91a63c7178aad1ca90</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:35:22+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=be5b3bcab8f836c7041c135107bd25722d075895'/>
<id>urn:sha1:be5b3bcab8f836c7041c135107bd25722d075895</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:35:22+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=35959a2e1f3f3ea8cd6a6b1ee522a649c747f29e'/>
<id>urn:sha1:35959a2e1f3f3ea8cd6a6b1ee522a649c747f29e</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>ui/sdl2: Set GL ES profile before creating initial GL context</title>
<updated>2026-06-24T13:35:14+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=5ce8ce8ae1096eda47cd0248c614f1025a8da1dc'/>
<id>urn:sha1:5ce8ce8ae1096eda47cd0248c614f1025a8da1dc</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>hw/9pfs: reject . and .. in Twstat rename</title>
<updated>2026-06-19T05:47:15+00:00</updated>
<author>
<name>Christian Schoenebeck</name>
<email>qemu_oss@crudebyte.com</email>
</author>
<published>2026-05-29T16:29:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=97455be94191df1399dae35b1c2ba5b957ead949'/>
<id>urn:sha1:97455be94191df1399dae35b1c2ba5b957ead949</id>
<content type='text'>
The other Trename and Trenameat handlers already reject "." and ".."
as new name on rename requests by returning -EISDIR in this case.

The legacy Twstat rename handler is missing this validation. While passing
"." or ".." does not trigger a crash as fixed by the previous patch (since
the fs backend driver's system calls handle these gracefully), it creates
a behavioral inconsistency, as it is semantically meaningless to rename a
file to a directory reference in the first place.

Fix this by rejecting "." and ".." in Twstat rename handler with -EISDIR
to match behavior of Trename and Trenameat handlers.

Fixes: 8cf89e007a ("virtio-9p: Add P9_TWSTAT support")
Link: https://lore.kernel.org/qemu-devel/662333331d371c6c343c8091161de8eaa121880e.1780072238.git.qemu_oss@crudebyte.com
Signed-off-by: Christian Schoenebeck &lt;qemu_oss@crudebyte.com&gt;
(cherry picked from commit 08750e31fcdccf5352dc3b44475ed5ba6bc80221)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>hw/9pfs: fix abort due to illegal name with Twstat rename</title>
<updated>2026-06-19T05:47:15+00:00</updated>
<author>
<name>Christian Schoenebeck</name>
<email>qemu_oss@crudebyte.com</email>
</author>
<published>2026-05-29T16:29:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=13fb03237629a595f6a8ea9c5c1d99f605c948c3'/>
<id>urn:sha1:13fb03237629a595f6a8ea9c5c1d99f605c948c3</id>
<content type='text'>
The legacy Twstat 9p request can be used to rename files and directories.
Unlike the other, more recent rename requests like Trename and Trenameat,
Twstat does not validate the submitted new name before passing it to
v9fs_complete_rename().

A priviliged guest user with direct communication access to 9p server
could pass a string containing '/' as new name, which causes an assertion
fault (DoS) in local_name_to_path().

Fix this by rejecting such strings by checking the client supplied new
name with name_is_illegal(), similar to how Trename and Trenameat handlers
do already.

Reported-by: Feifan Qian &lt;bea1e@proton.me&gt;
Fixes: 8cf89e007a ("virtio-9p: Add P9_TWSTAT support")
Link: https://lore.kernel.org/qemu-devel/ba09716828e82992f9d8cac7f00eee0bc1c43c61.1780072238.git.qemu_oss@crudebyte.com
Signed-off-by: Christian Schoenebeck &lt;qemu_oss@crudebyte.com&gt;
(cherry picked from commit 7f5445e7e4050cc117ed4b137bb7dd1474e49d57)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
</feed>
