QEMU provides full machine emulation and cross architecture usage. It closely
integrates with KVM and Xen virtualization, allowing for excellent performance.
Many options are available for defining the emulated environment, including
traditional devices, direct host device access, and interfaces specific to
virtualization.
This package contains user and developer documentation for QEMU.
Provides
Requires
License
BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later AND MIT
Changelog
* Thu Oct 01 2026 Dario Faggioli <dfaggioli@suse.com>
- Update to latest stable release (11.1.2)
Full backport list here:
https://lore.kernel.org/qemu-devel/20260929144512.126747-1-mjt@tls.msk.ru/
A selection of them is reported here below:
target/sh4: Replace TB_FLAG_GUSA_EXCLUSIVE with CF_STEP_ATOMIC
accel/tcg: Set CF_NOIRQ during cpu_exec_step_atomic
linux-user/sh4: align the vdso sigreturn trampolines
linux-user/sh4: fix vdso CFA for rt_sigreturn frames
linux-user/sh4: use the kernel's sigreturn trampoline sequence in the vdso
target/i386: Mark MOVNTI as not valid with prefixes 0x66, 0xF2, 0xF3
target/i386: Update FPU tag word for FXCH
target/i386: Update FPU tag word for FSTP
target/i386: Update FPU tag word for FXTRACT's old ST(0)
target/i386: Fix FXCH to unconditionally clear C1
target/ppc: Stop vCPU thread before calling parent_unrealize
tests/qtest/usb-hcd-xhci: test isoch endpoint type mismatch
tests/qtest/usb-hcd-xhci: test isoch pacing with MFINDEX above 2^32
hw/usb/hcd-xhci: don't assert on NAK when retrying an isoch transfer
hw/usb/hcd-xhci: fix interval alignment after MFINDEX passes 2^32
hw/usb/hcd-xhci: Set reentrancy guard in timer functions (CVE-2026-17588)
tcg/riscv64: Set vtype before whole-register vector loads
tests/tcg/s390x: Add regression test for #4449
tcg/optimize: Fix expansion/simplification of deposit
tests/tcg/arm: Add regression test for #4448
tcg/optimize: Fix fold_multiply2 vs 1
accel/tcg: Fix TLB_MMIO check in tlb_plugin_lookup()
accel/tcg: Use TLB_FORCE_SLOW not TLB_MMIO for system plugins
hw/9pfs: mutate FID path from main thread only (CVE-2026-93834)
s390x/pci: fix DMA slot leak on I/O TLB entry replacement
hw/s390x/ipl: Fix incorrect PCI IPL block lengths
linux-user/loongarch64: Detect vector stores in host_signal_write()
linux-user: implement mlock2(2) syscall
linux-user/riscv: honor zicntrĂșlse for base counterCSRs
system/ram-discard-manager: fix offset_within_address_space in replay_by_populated_state()
igvm: mark qigvm_find_param_entry as static
igvm: validate and honor byte_offset in parameter directives
hw/uefi: add missing uefi_str_is_valid check to uefi_vars_mm_lock_variable
target/loongarch: Fix data race in CSR_ESTAT
hw/riscv/virt.c: fix aclint soc/mtimer nodename
target/arm/hvf: implement MDCCSR_EL0 as RAZ
target/arm/whpx: fix whpx-arm post-reset CPU state
target/arm/whpx: incorrect ENCODE_AA64_CP_REG parameter order
target/arm/whpx: Don't try to sync ARM_CP_CONST registers
hw/intc/bcm2835_ic: reject out-of-range FIQ source values
qga: Change effective user/group ID in guest-ssh-* commands
vhost-user-gpu: validate command buffer size in submit_3d
ui/cursor: make the cursor refcount atomic
hw/display/qxl: hold ssd.lock while replacing ssd.cursor
hw/cxl: fix the CDAT DOE overlapping the Flex Bus DVSEC when sn= is set
virtio-scsi: set dataplane_started to false upon failure
virtio-balloon: fix free-page BH teardown on unrealize
hw/virtio: reject inverted virtio-iommu IOVA ranges
hw/net/virtio-net: strip trailing padding when caching RSC segment
hw/net/virtio-net: check packet size before VLAN tag access in receive_filter()
qapi/misc: Fix missed query-iothreads items
hw/cxl: Fix guest-triggerable QEMU exit on reserved interleave ways
virtio-gpu: clear res->blob on mapping cleanup
* Wed Sep 30 2026 Dario Faggioli <dfaggioli@suse.com>
- Bugfixes and (spec-file) improvements:
* vapic: confine the VAPIC region to 0xc0000..0xe0000 (bsc#1282077, CVE-2026-81627)
* hw/9pfs: mutate FID path from main thread only (bsc#1282578, CVE-2026-93834)
* [openSUSE][RPM] spec: drop qemu-ipxe Requires for ppc (bsc#1282918)
* [openSUSE][RPM] spec: stub out all iotests when running under user emulation (e.g., for riscv64)
* target/ppc/kvm: Use host compatibility mode for nested guests (bsc#1263864)
* target/ppc/kvm: Add support for querying host compatibility mode (bsc#1263864)
* linux-headers: Update to include KVM_CAP_PPC_COMPAT_CAPS (bsc#1263864)
* file-posix: Tolerate unaligned hole at middle (bsc#1277435)
* [openSUSE][RPM] spec: skip the tests that require get_mempolicy under linux-user
* [openSUSE][RPM] build all firmware on riscv64 and fix user tests
* Fri Sep 04 2026 Dario Faggioli <dfaggioli@suse.com>
- Bugfixes (bsc#1277435, bsc#1263864):
* file-posix: Tolerate unaligned hole at middle (bsc#1277435)
* target/ppc/kvm: Use host compatibility mode for nested guests (bsc#1263864)
* target/ppc/kvm: Add support for querying host compatibility mode (bsc#1263864)
* linux-headers: Update to include KVM_CAP_PPC_COMPAT_CAPS (bsc#1263864)
* Thu Sep 03 2026 Dario Faggioli <dfaggioli@suse.com>
- Improve riscv64 handling:
* [openSUSE][RPM] build all firmware on riscv64 and fix user tests
* [openSUSE][RPM] spec: stub out all iotests when running under user
emulation (e.g., for riscv64)
* Thu Sep 03 2026 Dario Faggioli <dfaggioli@suse.com>
- Fix broken build on aarch64:
* [openSUSE][RPM] spec: disable GCS linker validation on aarch64
- Update to latest stable release (11.1.1)
Full backport list here:
https://lore.kernel.org/qemu-devel/20260827155607.639070-1-mjt@tls.msk.ru/
A selection of them is reported here below:
target/riscv/tcg: sret in virtual user mode raises virtual instruction exception
target/riscv: Allow UXL to be 3 in mstatus on rv128
target/riscv: Restore register dump zero padding
tests/qtest: remove trace output from k230 watchdog test
target/riscv: enforce even register constraints for Zdinx fcvt pairs
target/riscv: reject FMV.X.W/FMV.W.X under Zfinx
target/riscv: honor zicbo* envcfg gating in linux-user mode
disas/riscv: Fix typo in th.lbib format
disas/riscv: Fix isa decoding of rev8
disas/riscv: Fix rv32 encoding of zext.h
target/riscv: allow menvcfg/henvcfg LPE and SSE bits on RV32
hw/riscv/riscv-iommu: preserve requested perm in spa_fetch()
hw/riscv/riscv-iommu: fix U-bit check to apply only to leaf S/VS-stage PTEs
disas/riscv: Decode unsigned vector immediates as unsigned
disas/riscv: Use signed type for vector immediates
disas/riscv: Fix 6-bit immediate extraction
disas/riscv: Fix th.srri decoding
tests/qtest: Add seed CSR zero extension test
target/riscv: Fix seed CSR sign extension
target/riscv: do not count ECALL in minstret
target/riscv: Fix memory leak in riscv_trigger_unrealize()
target/riscv: use SXL instead of MXL for read_sstatus
target/riscv: Fix PC sync in trans_sspopchk for CFI exception handling
whpx: i386: inject back db
whpx: i386: work around Hyper-V FP state oddities
whpx: i386: synchronise PAT too
whpx: i386: enable fast hypercall output
hw/i386: fw_cfg: do not set VMX feature control on WHPX
whpx: i386: fix xsaves enablement in legacy probing path
hw/watchdog: Add lower bound check for watchdogNumber
tests/tcg/aarch64: Add regression test for whilewr/whilerw
target/arm: Fix SVE2 WHILEWR/WHILERW zero diff boundary case
tcg: Export tcg_gen_ussub_i{32,64,tl}
hw/intc/arm_gicv3: Have GIC kconfig select GICv3 for HVF and WHPX
hw/intc: Fix arm kvm gicv3 selection
tcg: Defer tb_flush when initial thread region alloc fails
tcg: Return success from tcg_region_alloc
tcg: Return success from tcg_region_alloc__locked
target/loongarch: check FPE before reading fcc in bceqz/bcnez
meson: make linker warnings non-fatal on Linux
serial: clear transmit retry callback on unrealize
...
* Mon Aug 24 2026 Dario Faggioli <dfaggioli@suse.com>
- Revisit the fix for bsc#1232712:
* hw/display/xenfb: always register vfb and allocate console early (bsc#1232712)
- Switch to ipxe-qemu:
* [openSUSE][RPM] spec: stop building edk2-basetools and ipxe
- Upgrade to version 11.1.0
The full list of changes are available at:
https://wiki.qemu.org/ChangeLog/11.1
Highlights include:
* Universal Flash Storage (UFS) emulation support for Write Booster
(device-level caching) and Host-Initiated Defragmentation (HID) based
on UFS 4.1 specification
* vhost-host-user support for offloading real-time clock handling from
the hypervisor when using virtio-rtc
* GUI: improvements to virtual console handling/specifying of different
character encoding and GTK/VNC improvements as well
* ARM: support for new architectural CPU features (too many to list
here, see full changelog)
* ARM: support for new imx8mp-evk machine type (based on i.MX 8MM
Evaluation kit)
* ARM: 'virt' board support for specifying cache topology, 'hvf'
accelerator now supports nested virtualization and vGIC
* HPPA: updated to SeaBIOS-hppa v25 firmware, TLB insert fixes for
HP-UX 9
* PowerPC: MPIPL support for PowerNV to preserve memory after an
unexpected reset, as well as support for emulating a nest MMU
* RISC-V: ISA exstention support for big-endian, Zbr/xbr0p93, Zvfbfa,
fractional LMUL on vector SHA instructions, KVM support for Zicbop
and BFloat16 extensions, and more
* RISC-V: new board support for K230, support for Tenstorrent mvendorid,
and other misc. fixes/features
* s390x: KVM support for ASTFLE facility 2 (for nested)
* and lots more...
* Thu Jul 30 2026 Dario Faggioli <dfaggioli@suse.com>
- (Properly, this time for real) fix bsc#1268245:
* [openSUSE][RPM] spec: properly fix bsc#1268245 (this time for real!)
* Thu Jul 30 2026 Dario Faggioli <dfaggioli@suse.com>
- Update to latest stable release (11.0.3)
Full backport list here:
https://lore.kernel.org/qemu-devel/20260725052155.1228635-1-mjt@tls.msk.ru/
A selection of them is reported here below:
target/arm: do not clear halting reason in has_work helper
target/arm: teach arm_cpu_has_work about halting reasons
hw/audio/intel-hda: restrict all DMA engine paths to memories
hw/net/cadence: Return current Cadence GEM queue pointers
hw/misc/applesmc: Fix a typo setting MSSD key
replay: fix use of uninitialized pointer on error
hw/display/qxl: validate monitors_config heads[] in phys2virt
net: Correct padding check in qemu_receive_packet()
hw/net/xilinx_axienet: Fix PHY register 17 link status reporting
hw/usb/hcd-xhci-sysbus: Fix OOB heap access in xhci_sysbus_intr_raise()
hw/usb/hcd-xhci: Fix guest-triggerable assert() in xhci_find_stream()
usbredir: fix infinite loop and SIGFPE with zero max_packet_size
usbredir: fix use-after-free on buffered bulk packet overflow
tests/qtest: add xhci-pci unplug finalize regression test
hw/usb/hcd-xhci-pci: break host link cycle so device_finalize() runs on unplug
hw/usb/xhci: clamp interval exponent to avoid UB shift in xhci_init_epctx()
accel/tcg: move jit thread manipulation into do_tb_phys_invalidate
hw/display/virtio-gpu: Check pixman_image_create_bits() results
hw/display/virtio-gpu: handle migration iov allocation failure
hw/display/virtio-gpu: cap submit_3d command buffer allocation
ui/vnc: validate SetPixelFormat field ranges
ui/vnc: fix out-of-bounds write in lossy refresh dirty marking
ui/gtk: Narrow DMA-BUF critical section
ui/input-barrier: fix off-by-one in keycode bounds check
ui/vnc: validate color shifts in SetPixelFormat
ui/vnc: fix OOB write in vnc_refresh_lossy_rect
net: only advertise passt in netdev help when CONFIG_PASST
hw/usb/hcd-xhci: Turn guest-triggerable abort() into qemu_log_mask()
hw/usb/hcd-ohci: Make sure that ohci_service_ed_list() cannot loop forever
hw/display/virtio-gpu: fix dmabuf_fd leak on remap failure
hw/scsi/vmw_pvscsi: add a comment to explain the endianness
hw/scsi/vmw_pvscsi: translate data endianness
hw/sparc64/niagara: use int64_t for vdisk size to avoid truncation
hw/display/qxl: fix TOCTOU in cursor chunk data_size handling
hw/misc/ivshmem: clear chardev handlers before freeing peers
linux-user/alpha: populate AT_HWCAP from env->amask
linux-user/alpha: add coredump support
s390x/css: firm up handling of chained TIC CCWs
s390x/sclpcpi: check event length field before reading from buffer
s390x/sclp: prevent re-reading the sclp header
hw/misc/stm32_rcc: Correct offset-to-irq calculation
hw/display/sm501: Don't allow guest to set ram size larger than it is
hw/display/sm501: Avoid overflow problems in bounds check calculations
hw/display/sm501: Catch bad coordinates for RTL operations
...
- Fix bsc#1273022:
* hw/i386/pc: xen: reinstate the "xenfv" machine alias (bsc#1273022)
* Tue Jul 21 2026 Dario Faggioli <dfaggioli@suse.com>
- Properly fix bsc#1268245:
* [openSUSE][RPM] spec: fix missing unversioned ppc64 linker (bsc#1268245)
* Tue Jun 30 2026 Dario Faggioli <dfaggioli@suse.com>
- Update to latest stable release (11.0.2)
Full backport list here:
https://lore.kernel.org/qemu-devel/20260627082913.181C717AB6B@think4mjt.localdomain/
Bugs and CVEs fixed:
- bsc#1268794 (CVE-2026-48914)
A selection of them is reported here below:
linux-user: Fix AT_PHDR when program headers are relocated into their own segment
hw/pci: Replace assert with bounds check and return
ppc/pnv_phb3: Error out on invalid config access
linux-user/xtensa: fix unlock of uninitialized frame pointer on sigreturn
linux-user/xtensa: save/restore FP registers across signal delivery
target/xtensa: add cpu_set_fcr/fsr helpers to sync fp_status
target/arm/hvf: Stop pre-allocating cpreg_vmstate arrays
ui/sdl2: Set GL ES profile before creating initial GL context
ui/sdl2: Explicitly specify EGL platform
hw/9pfs: reject . and .. in Twstat rename
hw/9pfs: fix abort due to illegal name with Twstat rename
gdbstub: Update x86 control register bits
target/i386: apply mod to immediate count of an RCL/RCR operation
hw/uefi: fix parse_hexstr
target/riscv: mask vxrm csrw write to the low 2 bits
disas/riscv.c: fix inst_length()
target/riscv/tcg: disable svnapot if satp_mode < sv39
target/riscv/cpu_helper.c: add PMA access fault
target/riscv/cpu_helper.c: fault with reserved PTE.PBMT val
target/riscv/insn_trans/trans_rvzicbo.c.inc: save opcode before helpers
disas/riscv.c: add 'cbo' insns to disassembler
target/riscv/csr.c: fix mstatus.UXL reserved value
target/riscv/csr.c: do not allow mstatus MPV/GVA writes
target/riscv/tcg: disable svpbmt if satp_mode < sv39
target/riscv/cpu_helper.c: allow LOAD_ADDR_MIS promotion to AMO fault
virtio: Allow to fill a whole virtqueue in order
amd_iommu: Reject non-decreasing NextLevel in fetch_pte()
amd_iommu: Follow root pointer before page walk and use 1-based levels
libvduse: fix buffer overflow in vduse_queue_read_indirect_desc()
libvhost-user: fix buffer overflow in virtqueue_read_indirect_desc()
tests/qtest: Add amd-iommu command buffer head wrap test
amd_iommu: Update command buffer head ptr in MMIO region after wraparound
amd_iommu: restrict command buffer head/tail ranges to ring size
linux-user: add preadv2/preadv2
system/rtc: Fix a possible year-2038 integer overflow problem
linux-user/strace: add fsmount series of syscalls
linux-user: implement fsmount(2) series of syscalls
fpu: Handle all rounding modes in partsN_uncanon_normal
hw/usb/hcd-ohci: Clean up USBPacket before freeing ISO TD packet
qed: Don't try to flush during incoming migration
iotests: test shared mmap for fuse export
block/export/fuse: set FUSE_DIRECT_IO_ALLOW_MMAP flag to fix regression
block/export/fuse: use struct fuse_init_in
qcow2: Fix data loss on zero write with detect-zeroes=unmap
iotests/046: Test that discard/write_zeroes wait for dependencies
qcow2: Fix corruption on discard during write with COW
qemu-io: Add 'aio_discard' command
virtio-blk: add missing VIRTIO_BLK_T_SCSI_CMD size check (CVE-2026-48914)
block/io: fallback to bounce buffer if BLKZEROOUT is not supported because of alignment
hw/i3c: fix CMD/data FIFO depth reset values to match real silicon
s390x/pci: Fix interrupt forwarding disable for interpreted devices
target/s390x: Make container ids in SysIB_15x 1-based
lcitool: remove Cirrus CI support
gitlab: remove x64-freebsd-14-build Cirrus job
gitlab: add initial MacOS 15 on gitlab runner
ci: drop cirrus MacOS build
tests/unit: add test-envlist covering setenv/unsetenv name matching
util/envlist: fix prefix-match in envlist_unsetenv() name lookup
...
* Wed Jun 17 2026 Dario Faggioli <dfaggioli@suse.com>
- Fix bsc#1268279, bsc#1268245, bsc#1263098:
* [openSUSE][RPM] spec: fix post-build-checks failure for qemu-tools (bsc#1263098)
* [openSUSE][RPM] spec: fix missing unversioned ppc64 cross-compiler binaries (bsc#1268245)
* ppc/spapr: Skip system reset for quiesced CPUs (bsc#1268279)
* Thu May 28 2026 Dario Faggioli <dfaggioli@suse.com>
- Update to latest stable release (11.0.1)
Full backport list here:
https://lore.kernel.org/qemu-devel/20260528061820.CEE521691A9@think4mjt.localdomain/
A selection of them is reported here below:
block/graph-lock: fix missed wakeup in bdrv_graph_co_rdunlock()
commit: Drain nodes across all of bdrv_commit()
block: Add more defaults to DEFAULT_BLOCK_CONF
block: Create DEFAULT_BLOCK_CONF macro
ide-test: Test reset during TRIM
ide-test: Factor out wait_dma_completion()
ide: Clean up ide_trim_co_entry() to be idiomatic coroutine code
ide: Minimal fix for deadlock between TRIM and drain
block: Add flags parameter to blk_*_pdiscard()
block: Add blk_co_start/end_request() and BDRV_REQ_NO_QUEUE
blkdebug: Add 'delay-ns' option
linux-user/sh4: Fix setup_sigtramp to match Linux kernel trampoline pattern
linux-user/sh4: Fix target_ucontext tuc_link field type
linux-user: Fix AT_EXECFN in AUXV for symlinked programs
hw/nvme: fix admin cq msix setup
target/arm/hvf: Fix WFI halting to stop idle vCPU spinning
tests/functional/qemu_test/asset.py: Don't use setxattr when it doesn't exist
hw/remote/machine.c: Mark x-remote machine as OK for AArch64 and AArch32
meson.build: Add -fzero-init-padding-bits=all
tests/qtest/iommu-smmuv3-test: Skip if no TCG GICv3 device present
ati-vga: fix ati_set_dirty address calculation
hw/i2c/microbit_i2c: Don't index off end of twi_read_sequence[]
aspeed/hace: Prevent total_req_len overflow
aspeed/hace: Fix out-of-bounds read in has_padding()
hw/misc/aspeed_sbc: Add bounds checking for OTP write operations
hw/display/cirrus_vga: Fix packed-24 color-expansion transparent copies
hw/display/cirrus_vga: Fix packed-24 color-expansion transparent pattern fills
hw/ufs: Zero reserved bytes in REPORT LUNS response header
hw/ufs: Keep MCQ SQs alive while requests are outstanding
hw/ufs: Reject zero-depth MCQ queues
hw/ufs: Guard MCQ CQ accesses against missing queues
hw/ufs: Validate MCQ SQ references before use
tests/functional: Make socat wait longer in migration exec test
hw/uefi: check auth.hdr_length minimum size
hw/uefi: avoid possibly unaligned variable_auth_2 struct field access
hw/uefi: verify data size before accessing it in wrap_pkcs7
hw/uefi: add name_size check to uefi_vars_mm_lock_variable()
hw/uefi: fix ucs2 string helper functions
hw/uefi: verify pio_xfer_offset before calculating buffer checksum
hw/uefi: fix buffer overruns
hw/misc/bcm2835_rng: Specify valid memory access sizes
...
- Fix bsc#1199023:
* [openSUSE] qemu-ga: fix service file against no-autostart (bsc#1199023)
* Fri May 22 2026 Dario Faggioli <dfaggioli@suse.com>
- Package infra (service file):
* Move all the way back to tar_scm
* Thu May 21 2026 Dario Faggioli <dfaggioli@suse.com>
- spec file and infrastructure (services) changes:
* [openSUSE][RPM] spec: move away from update-alternatives (jsc#PED-15661)
* Switch back to tar.xz archive, as obscio is not ideal in git
* Sun Apr 26 2026 Dario Faggioli <dfaggioli@suse.com>
- Start hardening qemu-ga against arbitrary command execution:
* qemu-ga: start limiting the security sensitive capabilities of the guest-agent
* Fri Apr 24 2026 Dario Faggioli <dfaggioli@suse.com>
- Fix missing dependencies in some SLE build:
* [openSUSE][RPM] spec: fix suse_version and is_opensuse macros handling (jsc#PED-15770)
* Fri Apr 24 2026 Dario Faggioli <dfaggioli@suse.com>
- Update to version 11.0.0 (jsc#PED-14599)
The full list of changes are available at:
https://wiki.qemu.org/ChangeLog/11.0
Highlights include:
* New "nitro" accelerator to run AWS Nitro Enclaves natively, and improved
support for MSHV and WHPX accelerators.
* KVM: Support for CET virtualization.
* KVM: Reset support for SEV-SNP and TDX confidential VMs.
* virtio-gpu support for native context drivers and specifying a unique
resolution for each output.
* TCG: in-tree support for C++ plugins.
* NFS block driver support for libnfs v6 and various improvements to
curl/FUSE block drivers.
* ARM: support for CPU features FEAT_ASID2 and FEAT_E2H0.
* ARM: TCG emulation support for SME (Scalable Matrix Extension), and HVF
accelation of SME2 on macos (if the host CPU supports it).
* HPPA: SeaBIOS-hppa v24 now implements the Astro PCI initializaiton
(allowing for PCI VGA on 64-bit systems), improves upcoming HP-UX
64-bit support, and has initial support for multicell machines.
Prior versions also have fixes and updates for 64-bit/PAT support and
other areas as well.
* HPPA: Emulation support for 64-bit CPUs with 40 and 44 bit address
spaces, and 64-bit GDB support.
* LoongArch: KVM PMU migration support.
* LoongArch: TCG emulation support for LA v1.1, sc.q, llacq/screl/ and
estimated reciprocal instructions.
* PowerPC: snapshot support for several ppc devices.
* RISC-V: ISA extensions support for Zilsd, Zclsd, ZALASR, and Smpmpmt.
* RISV-V: CPU support for MIPS P8700 CPUs, better reporting of CSR
registers in 'info registers', and other fixes and improvements.
* s390: emulation support for "DIVIDE TO INTEGER" instruction.
* s390: support for booting from virtio-blk-pci devices.
* x86: CPU support for Diamond Rapids
* x86: support for a new "nitro" accelerator and machine type to run
Nitro Enclaves natively under QEMU.
* and lots more...
- Enable FUSE support
* [openSUSE][RPM] spec: enable fuse support
- Disable building on 32bit hosts
* [openSUSE][RPM] spec: disable build for 32bit hosts
* Sat Apr 11 2026 Dario Faggioli <dfaggioli@suse.com>
- Build QEMU with support for passt
* [openSUSE][RPM] spec: enable passt support
* Wed Mar 18 2026 Dario Faggioli <dfaggioli@suse.com>
- Update to latest stable release (10.2.2)
Full backport list here:
https://lore.kernel.org/qemu-devel/20260318045608.8332313DFF9@think4mjt.localdomain/
This release includes the fixes for (among others):
bsc#1258509 (CVE-2026-2243)
bsc#1259079 (CVE-2026-3196) / bsc#1259080 (CVE-2026-3195)
A selection of them is reported here below:
target/i386: add compat for migrating error code
hyperv/syndbg: check length returned by cpu_physical_memory_map()
fuse: Copy write buffer content before polling
target/loongarch: Preserve PTE permission bits in LDPTE
target/loongarch: Avoid recursive PNX exception on CSR_BADI fetch
hw: Make qdev_get_printable_name() consistently return freeable string
hw/net/npcm_gmac: Catch accesses off the end of the register array
linux-user: fix TIOCGSID ioctl
tests/tcg/multiarch/test-mmap: Check mmaps beyond reserved_va
bsd-user: Deal with mmap where start > reserved_va
linux-user: Deal with mmap where start > reserved_va
hw/net/xilinx_ethlite: Check for oversized TX packets
virtio-gpu: Ensure BHs are invoked only from main-loop thread
fdmon-io_uring: check CQ ring directly in gsource_check
aio-posix: notify main loop when SQEs are queued
block/nfs: Do not enter coroutine from CB
block: Never drop BLOCK_IO_ERROR with action=stop for rate limiting
block/throttle-groups: fix deadlock with iolimits and muliple iothreads
mirror: Fix missed dirty bitmap writes during startup
block/curl: fix concurrent completion handling
block/vmdk: fix OOB read in vmdk_read_extent()
hw/net/smc91c111: Don't allow negative-length packets
io: fix cleanup for websock I/O source data on cancellation
io: fix cleanup for TLS I/O source data on cancellation
io: separate freeing of tasks from marking them as complete
target/ppc/translate: Fix TCG debug assert translating CLRBWIBC
target/i386/emulate/x86_decode: Actually use stream in decode_instruction_stream()
target/i386/hvf/x86_mmu: Fix compiler warning
target/i386/emulate/x86_decode: Fix compiler warning
...
* Tue Feb 24 2026 Dario Faggioli <dfaggioli@suse.com>
- Update to stable release 10.2.1:
Full backport list here:
https://lore.kernel.org/qemu-devel/20260213060607.200695-1-mjt@tls.msk.ru/
This release includes the fixes for (among others):
bsc#1255400 (CVE-2025-14876)
A selection of them is reported here below:
scripts/qemugdb: timers: Fix KeyError in 'qemu timers' command
Revert "tcg/user: do not set exit_request gratuitously"
linux-user/syscall.c: Prevent acquiring clone_lock while fork()
hw/cxl: Take into account how many media operations are requested for param check
hw/cxl: Check for overflow on santize media as both base and offset 64bit.
virtio-gpu: fix error handling in virgl_cmd_resource_create_blob
virtio-pmem: ignore empty queue notifications
virtio-gpu-virgl: correct parent for blob memory region
cryptodev-builtin: Limit the maximum size
hw/virtio/virtio-crypto: verify asym request size
q35: Fix migration of SMRAM state
pcie_sriov: Fix PCI_SRIOV_* accesses in pcie_sriov_pf_exit()
virtio: Fix crash when sriov-pf is set for non-PCI-Express device
virtio-dmabuf: Ensure UUID persistence for hash table insertion
vdpa: fix vhost-vdpa suspended state not be shared
hw/i2c/aspeed_i2c: Fix DMA moving data into incorrect address
hw/i2c/aspeed: Fix wrong I2CC_DMA_LEN when I2CM_DMA_TX/RX_ADDR set first
hw/arm/aspeed_ast27x0: Fix EHCI3/4 IRQ routing to GIC
hw/i2c/aspeed_i2c.c: Add a check for dma_read
hw/adc: Fix out-of-bounds write in Aspeed ADC model
hw/uefi: fix size negotiation
hw/nvme: Fix bootindex suffix use-after-free
python: fix msys64 wheel directory specification
tests/qtest/ufs-test: Add test for mcq completion queue wraparound
hw/ufs: Fix mcq completion queue wraparound
hw/ufs: fix CQE endianness and UPIU length
hw/ufs: Ensure DBC of PRDT uses only lower 18 bits
tests/functional: migrate sbsa_ref test images
pc-bios/optionrom: Use 32-bit linker emulation for the optionroms
gitlab: preserve base rules for container template
target/i386/tcg: fix a few instructions that do not support VEX.L=1
linux-user: fixup termios2 related things on PowerPC
linux-user: Add missing termios baud rates
linux-user: Add termios2 support to sparc target
linux-user: Add termios2 support to sh4 target
linux-user: Add termios2 support to mips target
linux-user: Add termios2 support to hppa target
linux-user: Add termios2 support to alpha target
linux-user: Add termios2 support
hw/intc: avoid byte swap fiddling in gicv3 its path
...
- Fix bsc#1257492:
* [openSUSE][RPM] spec: Tie guest-agent supplements to the kernel package (bsc#1257492)
* Mon Feb 02 2026 Dario Faggioli <dfaggioli@suse.com>
- Fix bsc#1257314, bsc#1256980, bsc#1256484 (CVE-2026-0665) and
some issues with userspace emulation:
* tests: add tcg coverage for fixed mremap bugs
* linux-user: fix reserved_va page leak in do_munmap
* linux-user: fix mremap errors for invalid ranges
* linux-user: fix mremap unmapping adjacent region
* linux-user/elfload.c: Correction to HWCAP2 accessor
* linux-user: allow null `pathname` for statx()/fstatat()
* [openSUSE] roms/efi: Fix build error with glibc 2.43 (bsc#1257314)
* roms/edk2: fix building with GCC 16 (bsc#1256980)
* hw/i386/kvm: fix PIRQ bounds check in xen_physdev_map_pirq() (bsc#1256484, CVE-2026-0665)
* [openSUSE][RPM]: add enable-sdl and enable-sdl-image flags
* Fri Jan 23 2026 Dario Faggioli <dfaggioli@suse.com>
- Bug and CVE fixes:
* roms/edk2: fix building with GCC 16 (bsc#1256980)
* hw/i386/kvm: fix PIRQ bounds check in xen_physdev_map_pirq() (bsc#1256484, CVE-2026-0665)
* Fri Jan 09 2026 Dario Faggioli <dfaggioli@suse.com>
- Build ui-sdl and audio-sdl modules as some applications (like quickemu)
requires them.
* [openSUSE][RPM]: add enable-sdl and enable-sdl-image flags
- Update to version 10.2.0 (jsc#PED-14599)
The full list of changes are available at:
https://wiki.qemu.org/ChangeLog/10.2
Highlights include:
* Arm
- New CPU architectural features emulated: FEAT_SCTLR2, FEAT_TCR2,
FEAT_CSSC, ...
- The deprecated pxa CPU family has now been removed
- The gdbstub now exposes the SME and SME2 registers to debuggers
- virt: You can now create multiple SMMUv3 devices on the command line,
to give separate PCIe roots their own IOMMU
* PowerPC
- Support for PowerNV11 and PPE42 CPU/Machines.
- FADUMP Support for pSeries
- Decodetree movement for some floating-point instructions
- Firmware updates for SLOF, sam460ex u-boot
* x86
- The HPET device does not take the big QEMU lock anymore.
- The isapc machine can only use 3.5G memory and will warn when used
with 64-bit CPUs. Also, when -cpu max is used with isapc it will pick
a Pentium III CPU.
- Support for a new accelerator, MSHV, which lets you create VMs from a
Hyper-V guest without using nested virtualization.
* VFIO
- Removal of the deprecated vfio-platform, vfio-calxeda-xgmac and
vfio-amd-xgbe devices
* TCG Plugins
- new uftrace plugin
- new hooks for discontinuity events (irqs, host calls and exceptions)
* Migration
- Supported new cpr-exec migration mode
- Supported mapped-ram on snapshot save/load
- Fixed a false positive TLS warning when postcopy preempt migration
is completing
- Fixed source QEMU hang when a postcopy migration failed at switchover phase
- Fixed a possible interrupt performance regression after migration when with
VFIO-PCI devices
- Fixed snapshot crash when migration capabilities were wrongly specified
- Fixed COLO regression (since QEMU 10.0)
* Block device backends and tools
- It is now possible to open both the server and client endpoints of an NBD
connection from the same process. Previously, attempting to connect QEMU
as an NBD client to a socket being served by the same process would deadlock.
- The block limits detected for a block backend (such as required request
alignment, maximum request size etc.) are now exposed in QMP as part of
the data returned by the 'query-block' and 'query-named-block-nodes'
commands. The same information is displayed in 'qemu-img info' if the
new option '--limits' is given.
- 'stats-intervals' can now be configured in '-device' for block devices.
Previously, this was only available in '-drive' (and therefore inaccessible
when using '-blockdev').
* Miscellaneous
- On host systems that support io_uring, QEMU's main loop is now based on
io_uring, which can improve performance in some cases and will enable new
features and potentially further performance improvements in the future.
- The '-run-with' argument gains a new 'exit-with-parent=on' parameter which,
on Linux, FreeBSD and macOS platforms, will ensure QEMU is terminated when
the parent process exists.
- Fixed possible memory leak on CPU hot plug / unplug
- Fixed TDX regression on using hugetlbfs
- Fixed guest-memfd use case on shmem
- Fixed possible poweroff hang on virtio devices with iommu_platform=on
* User-mode emulation
- various bugfixes and added features
- implement fchmodat2 syscall
- support MADV_DONTDUMP and MADV_DODUMP
- fix FIBMAP and FIGETBSZ ioctls
- permit sendto() with NULL buf and 0 len
* Guest agent
- Fix truncated output handling in guest-exec status reporting
- Fix 'retry_path' logic for Windows service (Windows only)
- VSS: Write the hex value of the error in the log (Windows only)
* Fri Dec 12 2025 Dario Faggioli <dfaggioli@suse.com>
- Update to stable release 10.1.3:
Full backport list here:
https://lore.kernel.org/qemu-devel/1765091757.917767.2720030.nullmailer@tls.msk.ru/
This release includes the fixes for (among others):
bsc#1253002 (CVE-2025-12464)
bsc#1250984 (CVE-2025-11234)
A selection of them is reported here below:
kvm: Fix kvm_vm_ioctl() and kvm_device_ioctl() return value
docs/devel: Update URL for make-pullreq script
target/arm: Fix assert on BRA.
hw/aspeed/{xdma, rtc, sdhci}: Fix endianness to DEVICE_LITTLE_ENDIAN
hw/core/machine: Provide a description for aux-ram-share property
hw/pci: Make msix_init take a uint32_t for nentries
block/io_uring: avoid potentially getting stuck after resubmit at the end of ioq_submit()
iotests: add Linux loop device image creation test
block: use pwrite_zeroes_alignment when writing first sector
file-posix: populate pwrite_zeroes_alignment
block-backend: Fix race when resuming queued requests
ui/vnc: Fix qemu abort when query vnc info
chardev/char-pty: Do not ignore chr_write() failures
ui/vdagent: fix windows agent regression
hw/display/exynos4210_fimd: Account for zero length in fimd_update_memory_section()
hw/arm/armv7m: Disable reentrancy guard for v7m_sysreg_ns_ops MRs
hw/arm/aspeed: Fix missing SPI IRQ connection causing DMA interrupt failure
hw/arm/ast27x0: Fix typo in LTPI address
migration: Fix transition to COLO state from precopy
qmp: Fix a typo for a USO feature
target/i386: fix stack size when delivering real mode interrupts
target/i386: svm: fix sign extension of exit code
target/i386/tcg: validate segment registers
target/i386: Mark VPERMILPS as not valid with prefix 0
hw/southbridge/lasi: Correct LasiState parent
hw/dma/zynq-devcfg: Fix register memory
tests/functional: handle URLError when fetching assets
tests/functional: fix formatting of exception args
block/io: Take reqs_lock for tracked_requests
nvme: Fix coroutine waking
...
* Thu Nov 27 2025 Dario Faggioli <dfaggioli@suse.com>
- Fixes:
* [openSUSE][RPM]: really fix *-virtio-gpu-pci dependency on ARM (bsc#1254494)
* io: fix use after free in websocket handshake code (bsc#1250984)
* io: move websock resource release to close method (bsc#1250984)
* io: release active GSource in TLS channel finalizer (bsc#1250984)
* Fri Oct 31 2025 Dario Faggioli <dfaggioli@suse.com>
- Update to stable release 10.1.2:
Full backport list here:
https://lore.kernel.org/qemu-devel/1761022280.036705.6267.nullmailer@tls.msk.ru/
A selection of them is reported here below:
linux-user/microblaze: Fix little-endianness binary
target/hppa: correct size bit parity for fmpyadd
accel/tcg: Hoist first page lookup above pointer_wrap
target/i386: user: do not set up a valid LDT on reset
async: access bottom half flags with qatomic_read
target/i386: fix access to the T bit of the TSS
target/i386: fix x86_64 pushw op
i386/tcg/smm_helper: Properly apply DR values on SMM entry / exit
i386/cpu: Prevent delivering SIPI during SMM in TCG mode
i386/kvm: Expose ARCH_CAP_FB_CLEAR when invulnerable to MDS
target/i386: Fix CR2 handling for non-canonical addresses
block/curl.c: Use explicit long constants in curl_easy_setopt calls
target/i386: add compatibility property for pdcm feature
target/i386: add compatibility property for arch_capabilities
target/riscv: rvv: Fix vslide1[up|down].vx unexpected result when XLEN2 and SEWd
target/riscv: Fix ssamoswap error handling
target/riscv: Fix SSP CSR error handling in VU/VS mode
target/riscv: Fix the mepc when sspopchk triggers the exception
target/arm: Don't set HCR.RW for AArch32 only CPUs
pcie_sriov: make pcie_sriov_pf_exit() safe on non-SR-IOV devices
...
* Wed Oct 08 2025 Dario Faggioli <dfaggioli@suse.com>
- Update to stable release 10.1.1:
A selection of the backported patches and fixes is:
tests/functional/aarch64: Fix assets of test_hotplug_pci
physmem: Destroy all CPU AddressSpaces on unrealize
memory: New AS helper to serialize destroy+free
include/system/memory.h: Clarify address_space_destroy() behaviour
migration: Fix state transition in postcopy_start() error handling
target/riscv: rvv: Modify minimum VLEN according to enabled vector extensions
target/riscv: rvv: Replace checking V by checking Zve32x
target/riscv: Fix endianness swap on compressed instructions
hw/riscv/riscv-iommu: Fixup PDT Nested Walk
target/riscv: do not use translator_ldl in opcode_at
target/riscv: use riscv_csrr in riscv_csr_read
hw/char: sifive_uart: Raise IRQ according to the Tx/Rx watermark thresholds
docs/interop/firmware: Add riscv64 to FirmwareArchitecture
hw/riscv/riscv-iommu: Fix MSI table size limit
ui/icons/qemu.svg: Add metadata information (author, license) to the logo
ui/spice: fix crash when disabling GL scanout on
ui/spice: Fix abort on macOS
ppc/spapr: init lrdr-capapcity phys with ram size if maxmem not provided
hw/intc/xics: Add missing call to register vmstate_icp_server
net/passt: Fix build failure due to missing GIO dependency
hw/usb/hcd-uhci: don't assert for SETUP to non-0 endpoint
tests/tcg/multiarch: Add tb-link test
accel/tcg: Properly unlink a TB linked to itself
tests: Fix "make check-functional" for targets without thorough tests
.gitlab-ci.d/buildtest.yml: Unset CI_COMMIT_DESCRIPTION for htags
tcg/optimize: Fix folding of vector bitsel
hw/pci-host/astro: Don't call pci_regsiter_root_bus() in init
hw/pci-host/dino: Don't call pci_register_root_bus() in init
target/sparc: Relax decode of rs2_or_imm for v7
target/sparc: Loosen decode of RDTBR for v7
target/sparc: Loosen decode of RDWIM for v7
target/sparc: Loosen decode of RDPSR for v7
target/sparc: Loosen decode of RDY for v7
target/sparc: Loosen decode of STBAR for v8
target/sparc: Allow TRANS macro with no extra arguments
linux-user: avoid -Werror=int-in-bool-context
...
* Mon Sep 29 2025 Dario Faggioli <dfaggioli@suse.com>
- Resolve a repo-has-moved service running issue:
* .gitmodules: move u-boot mirrors to qemu-project-mirrors
* Thu Sep 25 2025 Dario Faggioli <dfaggioli@suse.com>
- Fix bsc#1230042:
* [openSUSE] rpm/spec: qemu-vgabios is required on ppc (bsc#1230042)
* Fri Sep 12 2025 Dario Faggioli <dfaggioli@suse.com>
- Update to latest release (10.1.0).
The full list of changes are available at:
https://wiki.qemu.org/ChangeLog/10.1
Highlights include:
* VFIO: Initial support for accessing/mapping memory for confidential
guests when guest_memfd is being utilized, allowing passthrough support
for virtual machines running under SEV-SNP/TDX
* Live migration: support for utilizing multifd to accelerate post-copy
migration, optimizations for pre-copy migration, and RDMA migration
support for ipv6
* QEMU guest agent: support for querying load of virtual machines
running Windows via new 'guest-get-load' command
* ARM: support for CPU features FEAT_SME2, FEAT_SME2p1, FEAT_SME_B16B16,
FEAT_SME_F16F16, FEAT_SVE_B16B16, and FEAT_SVE2p1
* ARM: support for new board/machine models 'max78000fthr',
'ast2700fc', 'catalina-bmc', 'gb200-bmc', and 'ast2700a0-evb'
* ARM: 'virt' board now supports nested virtualization under KVM, CXL,
and ACPI-based PCI hotplug
* LoongArch: support for in-kernel irqchip
* Microblaze: support for selecting the endianess of 'petalogix_s3adsp1800'
machine type
* RISC-V: ISA/extension support for atomic instruction fetch (Ziccif),
'Svrsw60t59b', and numerous other improvements/additions/fixes
* RISC-V: support for Kunminghu CPU and platform
* x86: KVM support for running confidential guests via Intel TDX
* x86: Support for initializing confidential TDX or SEV-SNP virtual
machines using the IGVM file format
* and lots more...
Have a look at the list of deprecated features too, especially
if you're still interested in using 32bits systems as hosts:
* https://qemu-project.gitlab.io/qemu/about/deprecated.html
- Add patches (from the mailing list):
python: avoid deprecation warning with get_event_loop
python: Replace asyncio.get_event_loop for Python 3.14
* Tue Aug 12 2025 Dario Faggioli <dfaggioli@suse.com>
- Fix build issues due to Python version:
* mkvenv: Support pip 25.2 (bsc#1247972)
* Tue Aug 12 2025 Dario Faggioli <dfaggioli@suse.com>
- Bug and CVE fixes:
* tests: Avoid dependency on padding on signal messages (boo#1246830)
* pcie_sriov: Fix configuration and state synchronization (bsc#1246992 CVE-2025-54566 CVE-2025-54567)
* [openSUSE][RPM] linux-user: restart systemd-binfmt upon changes (bsc#1247443)
* Sun Aug 10 2025 Dario Faggioli <dfaggioli@suse.com>
- Update to stable release 10.0.3:
Full list of backports here:
https://lore.kernel.org/qemu-devel/1748499690.323471.13081.nullmailer@localhost/
A selection of them is reported here too:
hvf: arm: Emulate ICC_RPR_EL1 accesses properly
target/arm: Correct encoding of Debug Communications Channel registers
ui: fix setting client_endian field defaults
hw/net/npcm_gmac.c: Send the right data for second packet in a row
target/i386: do not expose ARCH_CAPABILITIES on AMD CPU
i386/cpu: Honor maximum value for CPUID.8000001DH.EAX[25:14]
i386/cpu: Fix overflow of cache topology fields in CPUID.04H
i386/cpu: Fix cpu number overflow in CPUID.01H.EBX[23:16]
ui/vnc: Do not copy z_stream
vhost: Fix used memslot tracking when destroying a vhost device
roms: re-remove execute bit from hppa-firmware*
file-posix: Fix aio=threads performance regression after enablign FUA
amd_iommu: Fix truncation of oldval in amdvi_writeq
amd_iommu: Remove duplicated definitions
amd_iommu: Fix the calculation for Device Table size
amd_iommu: Fix mask to retrieve Interrupt Table Root Pointer from DTE
amd_iommu: Fix masks for various IOMMU MMIO Registers
amd_iommu: Update bitmasks representing DTE reserved fields
amd_iommu: Fix Device ID decoding for INVALIDATE_IOTLB_PAGES command
amd_iommu: Fix Miscellaneous Information Register 0 encoding
virtio-net: Add queues for RSS during migration
net: fix buffer overflow in af_xdp_umem_create()
accel/kvm: Adjust the note about the minimum required kernel version
...
* Wed Jul 23 2025 Dario Faggioli <dfaggioli@suse.com>
- Fix bsc#1246566:
* [roms] seabios: include "pciinit: don't misalign large BARs" (bsc#1246566)
* Fri Jun 20 2025 Dario Faggioli <dfaggioli@suse.com>
- Add Live migration support for QEMU-emulated AMD IOMMU (jsc#PED-13144):
* hw/i386/amd_iommu: Allow migration when explicitly create the AMDVI-PCI device (jsc#PED-PED-13144)
* hw/i386/amd_iommu: Isolate AMDVI-PCI from amd-iommu device to allow full control over the PCI device creation (jsc#PED-13144)
* Fri Jun 06 2025 Dario Faggioli <dfaggioli@suse.com>
- Update to stable release 10.0.2:
Full list of backports here:
https://lore.kernel.org/qemu-devel/1748499690.323471.13081.nullmailer@localhost/
A selection of them is reported here too:
Revert "Drop support for Python 3.8"
Update version for 10.0.1 release
Drop support for Python 3.8
target/hppa: Fix FPE exceptions
linux-user/hppa: Send proper si_code on SIGFPE exception
target/hppa: Copy instruction code into fr1 on FPU assist fault
migration: Allow caps to be set when preempt or multifd cap enabled
migration/multifd: Don't send device state packets with zerocopy flag
qapi/misc-target: Fix the doc to distinguish query-sgx and query-sgx-capabilities
hw/pci-host: Remove unused pci_host_data_be_ops
hw/pci-host/gt64120: Fix endianness handling
i386/hvf: Make CPUID_HT supported
i386/tcg: Make CPUID_HT and CPUID_EXT3_CMP_LEG supported
target/riscv/kvm: do not read unavailable CSRs
target/riscv/kvm: add kvm_csr_cfgs[]
target/riscv/kvm: turn kvm_riscv_reg_id_ulong() into a macro
target/riscv/kvm: turn u32/u64 reg functions into macros
target/riscv/kvm: fix leak in kvm_riscv_init_multiext_cfg()
target/riscv/kvm: minor fixes/tweaks
target/riscv: Fix vslidedown with rvv_ta_all_1s
target/riscv: Fix the rvv rese