* Mon Nov 03 2025 Miroslav Rezanina <mrezanin@redhat.com> - 10.1.0-4

- kvm-qapi-machine-s390x-add-QAPI-event-SCLP_CPI_INFO_AVAI.patch [RHEL-104009 RHEL-105823 RHEL-73008]
- kvm-tests-functional-add-tests-for-SCLP-event-CPI.patch [RHEL-104009 RHEL-105823 RHEL-73008]
- kvm-redhat-Add-new-rhel9.8.0-and-rhel10.2.0-machine-type.patch [RHEL-104009 RHEL-105823 RHEL-73008]
- kvm-vfio-rename-field-to-num_initial_regions.patch [RHEL-118810]
- kvm-vfio-only-check-region-info-cache-for-initial-region.patch [RHEL-118810]
- kvm-arm-create-new-rhel-10.2-specific-virt-machine-type.patch [RHEL-105826 RHEL-105828]
- kvm-arm-create-new-rhel-9.8-specific-virt-machine-type.patch [RHEL-105826 RHEL-105828]
- kvm-x86-create-new-rhel-10.2-specific-pc-q35-machine-typ.patch [RHEL-105826 RHEL-105828]
- kvm-x86-create-new-rhel-9.8-specific-pc-q35-machine-type.patch [RHEL-105826 RHEL-105828]
- kvm-rh-enable-CONFIG_USB_STORAGE_BOT.patch [RHEL-101929]
- Resolves: RHEL-104009
  ([IBM 10.2 FEAT] KVM: Enhance machine type definition to include CPI and PCI passthru capabilities (qemu))
- Resolves: RHEL-105823
  (Add new -rhel10.2.0 machine type to qemu-kvm [s390x])
- Resolves: RHEL-73008
  ([IBM 10.2 FEAT] KVM: Implement Control Program Identification (qemu))
- Resolves: RHEL-118810
  ([RHEL 10.2] Windows 11 VM fails to boot up with ramfb='on' with QEMU 10.1)
- Resolves: RHEL-105826
  (Add new -rhel10.2.0 machine type to qemu-kvm [aarch64])
- Resolves: RHEL-105828
  (Add new -rhel10.2.0 machine type to qemu-kvm [x86_64])
- Resolves: RHEL-101929
  (enable 'usb-bot' device for proper support of USB CD-ROM drives via libvirt  )
This commit is contained in:
Miroslav Rezanina 2025-11-03 13:29:51 +01:00
parent 9196fca599
commit 9a3e1e2331
11 changed files with 928 additions and 1 deletions

View File

@ -0,0 +1,50 @@
From 1e99cb806fb7d6a341bf8f7c238aa7261af7dbd0 Mon Sep 17 00:00:00 2001
From: Sebastian Ott <sebott@redhat.com>
Date: Wed, 29 Oct 2025 15:53:41 +0100
Subject: [PATCH 06/10] arm: create new rhel 10.2 specific virt machine type
RH-Author: Sebastian Ott <sebott@redhat.com>
RH-MergeRequest: 416: x86, arm: create new rhel 9.8, 10.2 specific machine types
RH-Jira: RHEL-105826 RHEL-105828
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
RH-Acked-by: Gavin Shan <gshan@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Commit: [1/4] 829eed93aefddcc4684ddacff3cd6ff3f991f442 (seott1/cos-qemu-kvm)
Signed-off-by: Sebastian Ott <sebott@redhat.com>
---
hw/arm/virt.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index d37d1bb3cf..e68979d2c5 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3688,16 +3688,23 @@ static void virt_machine_4_1_options(MachineClass *mc)
DEFINE_VIRT_MACHINE(4, 1)
#endif /* disabled for RHEL */
+static void virt_rhel_machine_10_2_0_options(MachineClass *mc)
+{
+}
+DEFINE_VIRT_MACHINE_AS_LATEST(10, 2, 0)
+
static void virt_rhel_machine_10_0_0_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
+ virt_rhel_machine_10_2_0_options(mc);
+
/* QEMU 9.1 and earlier have only a stage-1 SMMU, not a nested s1+2 one */
vmc->no_nested_smmu = true;
compat_props_add(mc->compat_props, hw_compat_rhel_10_2, hw_compat_rhel_10_2_len);
compat_props_add(mc->compat_props, hw_compat_rhel_10_1, hw_compat_rhel_10_1_len);
}
-DEFINE_VIRT_MACHINE_AS_LATEST(10, 0, 0)
+DEFINE_VIRT_MACHINE(10, 0, 0)
static void virt_rhel_machine_9_6_0_options(MachineClass *mc)
{
--
2.47.3

View File

@ -0,0 +1,49 @@
From c6b6b0d2969f8baf5f09bc1d4953df5e7445820c Mon Sep 17 00:00:00 2001
From: Sebastian Ott <sebott@redhat.com>
Date: Wed, 29 Oct 2025 16:05:12 +0100
Subject: [PATCH 07/10] arm: create new rhel 9.8 specific virt machine type
RH-Author: Sebastian Ott <sebott@redhat.com>
RH-MergeRequest: 416: x86, arm: create new rhel 9.8, 10.2 specific machine types
RH-Jira: RHEL-105826 RHEL-105828
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
RH-Acked-by: Gavin Shan <gshan@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Commit: [2/4] fb3fc4decafd0c6e94ef31c0120b843512089573 (seott1/cos-qemu-kvm)
Signed-off-by: Sebastian Ott <sebott@redhat.com>
---
hw/arm/virt.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index e68979d2c5..dcdd53043e 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -3706,14 +3706,19 @@ static void virt_rhel_machine_10_0_0_options(MachineClass *mc)
}
DEFINE_VIRT_MACHINE(10, 0, 0)
-static void virt_rhel_machine_9_6_0_options(MachineClass *mc)
+static void virt_rhel_machine_9_8_0_options(MachineClass *mc)
{
- virt_rhel_machine_10_0_0_options(mc);
-
+ /* NB: remember to move these lines to the *latest* RHEL 9 machine */
compat_props_add(mc->compat_props, arm_rhel9_compat, arm_rhel9_compat_len);
- /* NB: remember to move this line to the *latest* RHEL 9 machine */
compat_props_add(mc->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
}
+DEFINE_VIRT_MACHINE(9, 8, 0)
+
+static void virt_rhel_machine_9_6_0_options(MachineClass *mc)
+{
+ virt_rhel_machine_10_0_0_options(mc);
+ virt_rhel_machine_9_8_0_options(mc);
+}
DEFINE_VIRT_MACHINE(9, 6, 0)
static void virt_rhel_machine_9_4_0_options(MachineClass *mc)
--
2.47.3

View File

@ -0,0 +1,87 @@
From c616ee68c53e1ebc10f95e3401e505c034aeb361 Mon Sep 17 00:00:00 2001
From: Shalini Chellathurai Saroja <shalini@linux.ibm.com>
Date: Thu, 16 Oct 2025 14:17:07 +0200
Subject: [PATCH 01/10] qapi/machine-s390x: add QAPI event
SCLP_CPI_INFO_AVAILABLE
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Thomas Huth <thuth@redhat.com>
RH-MergeRequest: 412: Add -rhel9.8.0 and -rhel10.2.0 s390x machine types and enable the CPI feature
RH-Jira: RHEL-104009 RHEL-105823 RHEL-73008
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [1/3] 24789cc7501d22168819bf459f7d880deba8b403 (thuth/qemu-kvm-cs)
JIRA: https://issues.redhat.com/browse/RHEL-73008
Add QAPI event SCLP_CPI_INFO_AVAILABLE to notify the availability
of Control-Program Identification data in QOM.
Signed-off-by: Shalini Chellathurai Saroja <shalini@linux.ibm.com>
Suggested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20251016121708.334133-1-shalini@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
(cherry picked from commit 0ce63280dc6fe9fce1d89922f2d17dcae77827e6)
---
hw/s390x/sclpcpi.c | 4 ++++
qapi/machine-s390x.json | 21 +++++++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/hw/s390x/sclpcpi.c b/hw/s390x/sclpcpi.c
index 7aa039d510..68fc1b809b 100644
--- a/hw/s390x/sclpcpi.c
+++ b/hw/s390x/sclpcpi.c
@@ -54,6 +54,7 @@
#include "hw/s390x/event-facility.h"
#include "hw/s390x/ebcdic.h"
#include "qapi/qapi-visit-machine.h"
+#include "qapi/qapi-events-machine-s390x.h"
#include "migration/vmstate.h"
typedef struct Data {
@@ -106,6 +107,9 @@ static int write_event_data(SCLPEvent *event, EventBufferHeader *evt_buf_hdr)
e->timestamp = qemu_clock_get_ns(QEMU_CLOCK_HOST);
cpim->ebh.flags = SCLP_EVENT_BUFFER_ACCEPTED;
+
+ qapi_event_send_sclp_cpi_info_available();
+
return SCLP_RC_NORMAL_COMPLETION;
}
diff --git a/qapi/machine-s390x.json b/qapi/machine-s390x.json
index 966dbd61d2..8412668b67 100644
--- a/qapi/machine-s390x.json
+++ b/qapi/machine-s390x.json
@@ -119,3 +119,24 @@
{ 'command': 'query-s390x-cpu-polarization', 'returns': 'CpuPolarizationInfo',
'features': [ 'unstable' ]
}
+
+##
+# @SCLP_CPI_INFO_AVAILABLE:
+#
+# Emitted when the Control-Program Identification data is available
+# in the QOM tree.
+#
+# Features:
+#
+# @unstable: This event is experimental.
+#
+# Since: 10.2
+#
+# .. qmp-example::
+#
+# <- { "event": "SCLP_CPI_INFO_AVAILABLE",
+# "timestamp": { "seconds": 1401385907, "microseconds": 422329 } }
+##
+{ 'event': 'SCLP_CPI_INFO_AVAILABLE',
+ 'features': [ 'unstable' ]
+}
--
2.47.3

View File

@ -0,0 +1,99 @@
From 5c61c4d31ea23e30d79fb7d25d078d47701b2378 Mon Sep 17 00:00:00 2001
From: Thomas Huth <thuth@redhat.com>
Date: Thu, 18 Sep 2025 17:41:25 +0200
Subject: [PATCH 03/10] redhat: Add new -rhel9.8.0 and -rhel10.2.0 machine
types on s390x
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Thomas Huth <thuth@redhat.com>
RH-MergeRequest: 412: Add -rhel9.8.0 and -rhel10.2.0 s390x machine types and enable the CPI feature
RH-Jira: RHEL-104009 RHEL-105823 RHEL-73008
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [3/3] e9ad89069cb4b9badb1b5f57d78a043c64411b65 (thuth/qemu-kvm-cs)
Upstream Status: RHEL only
JIRA: https://issues.redhat.com/browse/RHEL-105823
JIRA: https://issues.redhat.com/browse/RHEL-104009
Add new -rhel9.8.0 and -rhel10.2.0 machine types that enable the
CPI feature and have the "relaxed-translation" for PCI passthrough
devices enabled by default.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/s390x/s390-virtio-ccw.c | 34 +++++++++++++++++++++++++++++++---
1 file changed, 31 insertions(+), 3 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 9be423858d..4937a0c3b8 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -1172,8 +1172,18 @@ DEFINE_CCW_MACHINE(4, 2);
#endif /* disabled for RHEL */
+static void ccw_rhel_machine_10_2_0_instance_options(MachineState *machine)
+{
+}
+
+static void ccw_rhel_machine_10_2_0_class_options(MachineClass *mc)
+{
+}
+DEFINE_CCW_MACHINE_AS_LATEST(10, 2, 0);
+
static void ccw_rhel_machine_10_0_0_instance_options(MachineState *machine)
{
+ ccw_rhel_machine_10_2_0_instance_options(machine);
}
static void ccw_rhel_machine_10_0_0_class_options(MachineClass *mc)
@@ -1183,12 +1193,28 @@ static void ccw_rhel_machine_10_0_0_class_options(MachineClass *mc)
{ TYPE_S390_PCI_DEVICE, "relaxed-translation", "off", },
};
+ ccw_rhel_machine_10_2_0_class_options(mc);
+
compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat));
compat_props_add(mc->compat_props, hw_compat_rhel_10_2, hw_compat_rhel_10_2_len);
compat_props_add(mc->compat_props, hw_compat_rhel_10_1, hw_compat_rhel_10_1_len);
s390mc->use_cpi = false;
}
-DEFINE_CCW_MACHINE_AS_LATEST(10, 0, 0);
+DEFINE_CCW_MACHINE(10, 0, 0);
+
+static void ccw_rhel_machine_9_8_0_instance_options(MachineState *machine)
+{
+ ccw_rhel_machine_10_2_0_instance_options(machine);
+}
+
+static void ccw_rhel_machine_9_8_0_class_options(MachineClass *mc)
+{
+ ccw_rhel_machine_10_2_0_class_options(mc);
+
+ /* NB: remember to copy this line to the *latest* RHEL 9 machine */
+ compat_props_add(mc->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
+}
+DEFINE_CCW_MACHINE(9, 8, 0);
static void ccw_rhel_machine_9_6_0_instance_options(MachineState *machine)
{
@@ -1197,9 +1223,11 @@ static void ccw_rhel_machine_9_6_0_instance_options(MachineState *machine)
static void ccw_rhel_machine_9_6_0_class_options(MachineClass *mc)
{
+ /*
+ * NB: -rhel9.6 was on a par with -rhel10.0, so we derive from that
+ * instead of deriving from the 9.8 machine type
+ */
ccw_rhel_machine_10_0_0_class_options(mc);
-
- /* NB: remember to move this line to the *latest* RHEL 9 machine */
compat_props_add(mc->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
}
DEFINE_CCW_MACHINE(9, 6, 0);
--
2.47.3

View File

@ -0,0 +1,62 @@
From c70f4d1ef65ee432a5f2cedb94447d705f6d8686 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@redhat.com>
Date: Mon, 3 Nov 2025 14:35:38 +0400
Subject: [PATCH 10/10] rh: enable CONFIG_USB_STORAGE_BOT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Marc-André Lureau <marcandre.lureau@redhat.com>
RH-MergeRequest: 417: rh: enable CONFIG_USB_STORAGE_BOT
RH-Jira: RHEL-101929
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [1/1] 612acd1d19c799c7441f63548648eb70b9e1dfd6 (marcandre.lureau-rh/qemu-kvm-centos)
JIRA: https://issues.redhat.com/browse/RHEL-101929
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
configs/devices/aarch64-softmmu/aarch64-rh-devices.mak | 1 +
configs/devices/riscv64-softmmu/riscv64-rh-devices.mak | 1 +
configs/devices/x86_64-softmmu/x86_64-rh-devices.mak | 1 +
3 files changed, 3 insertions(+)
diff --git a/configs/devices/aarch64-softmmu/aarch64-rh-devices.mak b/configs/devices/aarch64-softmmu/aarch64-rh-devices.mak
index 855278f70e..92d0b322d0 100644
--- a/configs/devices/aarch64-softmmu/aarch64-rh-devices.mak
+++ b/configs/devices/aarch64-softmmu/aarch64-rh-devices.mak
@@ -19,6 +19,7 @@ CONFIG_SEMIHOSTING=y
CONFIG_USB=y
CONFIG_USB_XHCI=y
CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_STORAGE_BOT=y
CONFIG_USB_STORAGE_CORE=y
CONFIG_USB_STORAGE_CLASSIC=y
CONFIG_USB_HUB=y
diff --git a/configs/devices/riscv64-softmmu/riscv64-rh-devices.mak b/configs/devices/riscv64-softmmu/riscv64-rh-devices.mak
index b5e55de916..5ac051f90b 100644
--- a/configs/devices/riscv64-softmmu/riscv64-rh-devices.mak
+++ b/configs/devices/riscv64-softmmu/riscv64-rh-devices.mak
@@ -15,6 +15,7 @@ CONFIG_SEMIHOSTING=y
CONFIG_USB=y
CONFIG_USB_XHCI=y
CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_STORAGE_BOT=y
CONFIG_USB_STORAGE_CORE=y
CONFIG_USB_STORAGE_CLASSIC=y
CONFIG_USB_HUB=y
diff --git a/configs/devices/x86_64-softmmu/x86_64-rh-devices.mak b/configs/devices/x86_64-softmmu/x86_64-rh-devices.mak
index 828cb8aa6f..1f244f766d 100644
--- a/configs/devices/x86_64-softmmu/x86_64-rh-devices.mak
+++ b/configs/devices/x86_64-softmmu/x86_64-rh-devices.mak
@@ -79,6 +79,7 @@ CONFIG_USB=y
CONFIG_USB_EHCI=y
CONFIG_USB_EHCI_PCI=y
CONFIG_USB_SMARTCARD=y
+CONFIG_USB_STORAGE_BOT=y
CONFIG_USB_STORAGE_CORE=y
CONFIG_USB_STORAGE_CLASSIC=y
CONFIG_USB_UHCI=y
--
2.47.3

View File

@ -0,0 +1,76 @@
From c8082b70cdd198a4a5236ca0543e2653663fb1d4 Mon Sep 17 00:00:00 2001
From: Shalini Chellathurai Saroja <shalini@linux.ibm.com>
Date: Thu, 16 Oct 2025 14:17:08 +0200
Subject: [PATCH 02/10] tests/functional: add tests for SCLP event CPI
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Thomas Huth <thuth@redhat.com>
RH-MergeRequest: 412: Add -rhel9.8.0 and -rhel10.2.0 s390x machine types and enable the CPI feature
RH-Jira: RHEL-104009 RHEL-105823 RHEL-73008
RH-Acked-by: Cédric Le Goater <clg@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [2/3] 7ff3e50bf038921d4514db88ef147ba92f960780 (thuth/qemu-kvm-cs)
JIRA: https://issues.redhat.com/browse/RHEL-73008
Add tests for SCLP event type Control-Program Identification.
Signed-off-by: Shalini Chellathurai Saroja <shalini@linux.ibm.com>
Suggested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
Reviewed-by Thomas Huth <thuth@redhat.com>
Message-ID: <20251016121708.334133-2-shalini@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
(cherry picked from commit bc436b739c3c8683ef5e8c22391952dcaa95242e)
---
tests/functional/test_s390x_ccw_virtio.py | 26 +++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tests/functional/test_s390x_ccw_virtio.py b/tests/functional/test_s390x_ccw_virtio.py
index 453711aa0f..0455337856 100755
--- a/tests/functional/test_s390x_ccw_virtio.py
+++ b/tests/functional/test_s390x_ccw_virtio.py
@@ -15,6 +15,7 @@
import tempfile
from qemu_test import QemuSystemTest, Asset
+from qemu_test import exec_command
from qemu_test import exec_command_and_wait_for_pattern
from qemu_test import wait_for_console_pattern
@@ -270,5 +271,30 @@ def test_s390x_fedora(self):
'while ! (dmesg -c | grep Start.virtcrypto_remove) ; do'
' sleep 1 ; done', 'Start virtcrypto_remove.')
+ # Test SCLP event Control-Program Identification (CPI)
+ cpi = '/sys/firmware/cpi/'
+ sclpcpi = '/machine/sclp/s390-sclp-event-facility/sclpcpi'
+ self.log.info("Test SCLP event CPI")
+ exec_command(self, 'echo TESTVM > ' + cpi + 'system_name')
+ exec_command(self, 'echo LINUX > ' + cpi + 'system_type')
+ exec_command(self, 'echo TESTPLEX > ' + cpi + 'sysplex_name')
+ exec_command(self, 'echo 0x001a000000060b00 > ' + cpi + 'system_level')
+ exec_command_and_wait_for_pattern(self,
+ 'echo 1 > ' + cpi + 'set', ':/#')
+ try:
+ event = self.vm.event_wait('SCLP_CPI_INFO_AVAILABLE')
+ except TimeoutError:
+ self.fail('Timed out waiting for the SCLP_CPI_INFO_AVAILABLE event')
+ ts = self.vm.cmd('qom-get', path=sclpcpi, property='timestamp')
+ self.assertNotEqual(ts, 0)
+ name = self.vm.cmd('qom-get', path=sclpcpi, property='system_name')
+ self.assertEqual(name.strip(), 'TESTVM')
+ typ = self.vm.cmd('qom-get', path=sclpcpi, property='system_type')
+ self.assertEqual(typ.strip(), 'LINUX')
+ sysplex = self.vm.cmd('qom-get', path=sclpcpi, property='sysplex_name')
+ self.assertEqual(sysplex.strip(), 'TESTPLEX')
+ level = self.vm.cmd('qom-get', path=sclpcpi, property='system_level')
+ self.assertEqual(level, 0x001a000000060b00)
+
if __name__ == '__main__':
QemuSystemTest.main()
--
2.47.3

View File

@ -0,0 +1,83 @@
From 9659c700e0afab65e7993459764b2e802178873b Mon Sep 17 00:00:00 2001
From: John Levon <john.levon@nutanix.com>
Date: Tue, 14 Oct 2025 17:12:27 +0200
Subject: [PATCH 05/10] vfio: only check region info cache for initial regions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Cédric Le Goater <clg@redhat.com>
RH-MergeRequest: 414: Fixes for vfio region cache
RH-Jira: RHEL-118810
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [2/2] 30b628642ee153e7da612e43aead3c6cd2de9769 (clegoate/qemu-kvm-centos)
It is semantically valid for a VFIO device to increase the number of
regions after initialization. In this case, we'd attempt to check for
cached region info past the size of the ->reginfo array. Check for the
region index and skip the cache in these cases.
This also works around some VGPU use cases which appear to be a bug,
where VFIO_DEVICE_QUERY_GFX_PLANE returns a region index beyond the
reported ->num_regions.
Fixes: 95cdb024 ("vfio: add region info cache")
Signed-off-by: John Levon <john.levon@nutanix.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Alex Williamson <alex@shazbot.org>
Link: https://lore.kernel.org/qemu-devel/20251014151227.2298892-3-john.levon@nutanix.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
(cherry picked from commit ecbe424a63c9f860a901d6a4a75724b046abd796)
---
hw/vfio/device.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/hw/vfio/device.c b/hw/vfio/device.c
index 0b459c0f7c..7ebf41c95e 100644
--- a/hw/vfio/device.c
+++ b/hw/vfio/device.c
@@ -205,10 +205,19 @@ int vfio_device_get_region_info(VFIODevice *vbasedev, int index,
int fd = -1;
int ret;
- /* check cache */
- if (vbasedev->reginfo[index] != NULL) {
- *info = vbasedev->reginfo[index];
- return 0;
+ /*
+ * We only set up the region info cache for the initial number of regions.
+ *
+ * Since a VFIO device may later increase the number of regions then use
+ * such regions with an index past ->num_initial_regions, don't attempt to
+ * use the info cache in those cases.
+ */
+ if (index < vbasedev->num_initial_regions) {
+ /* check cache */
+ if (vbasedev->reginfo[index] != NULL) {
+ *info = vbasedev->reginfo[index];
+ return 0;
+ }
}
*info = g_malloc0(argsz);
@@ -236,10 +245,12 @@ retry:
goto retry;
}
- /* fill cache */
- vbasedev->reginfo[index] = *info;
- if (vbasedev->region_fds != NULL) {
- vbasedev->region_fds[index] = fd;
+ if (index < vbasedev->num_initial_regions) {
+ /* fill cache */
+ vbasedev->reginfo[index] = *info;
+ if (vbasedev->region_fds != NULL) {
+ vbasedev->region_fds[index] = fd;
+ }
}
return 0;
--
2.47.3

View File

@ -0,0 +1,253 @@
From de33fcdabae841dba89fae781d6391164b22740f Mon Sep 17 00:00:00 2001
From: John Levon <john.levon@nutanix.com>
Date: Tue, 14 Oct 2025 17:12:26 +0200
Subject: [PATCH 04/10] vfio: rename field to "num_initial_regions"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Cédric Le Goater <clg@redhat.com>
RH-MergeRequest: 414: Fixes for vfio region cache
RH-Jira: RHEL-118810
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [1/2] 62524d77e79b6a57c4e61762cd61449280e4f2cd (clegoate/qemu-kvm-centos)
We set VFIODevice::num_regions at initialization time, and do not
otherwise refresh it. As it is valid in theory for a VFIO device to
later increase the number of supported regions, rename the field to
"num_initial_regions" to better reflect its semantics.
Signed-off-by: John Levon <john.levon@nutanix.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Alex Williamson <alex@shazbot.org>
Link: https://lore.kernel.org/qemu-devel/20251014151227.2298892-2-john.levon@nutanix.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
(cherry picked from commit aaca725884b57c9245528a0afb3f32e078543faf)
Conflicts: Modified hw/core/sysbus-fdt.c and hw/vfio/platform.c
---
hw/core/sysbus-fdt.c | 14 +++++++-------
hw/vfio-user/device.c | 2 +-
hw/vfio/ccw.c | 4 ++--
hw/vfio/device.c | 12 ++++++------
hw/vfio/iommufd.c | 3 ++-
hw/vfio/pci.c | 4 ++--
hw/vfio/platform.c | 10 +++++-----
include/hw/vfio/vfio-device.h | 2 +-
8 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/hw/core/sysbus-fdt.c b/hw/core/sysbus-fdt.c
index c339a27875..1e1966813f 100644
--- a/hw/core/sysbus-fdt.c
+++ b/hw/core/sysbus-fdt.c
@@ -236,15 +236,15 @@ static int add_calxeda_midway_xgmac_fdt_node(SysBusDevice *sbdev, void *opaque)
qemu_fdt_setprop(fdt, nodename, "dma-coherent", "", 0);
- reg_attr = g_new(uint32_t, vbasedev->num_regions * 2);
- for (i = 0; i < vbasedev->num_regions; i++) {
+ reg_attr = g_new(uint32_t, vbasedev->num_initial_regions * 2);
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
mmio_base = platform_bus_get_mmio_addr(pbus, sbdev, i);
reg_attr[2 * i] = cpu_to_be32(mmio_base);
reg_attr[2 * i + 1] = cpu_to_be32(
memory_region_size(vdev->regions[i]->mem));
}
qemu_fdt_setprop(fdt, nodename, "reg", reg_attr,
- vbasedev->num_regions * 2 * sizeof(uint32_t));
+ vbasedev->num_initial_regions * 2 * sizeof(uint32_t));
irq_attr = g_new(uint32_t, vbasedev->num_irqs * 3);
for (i = 0; i < vbasedev->num_irqs; i++) {
@@ -330,7 +330,7 @@ static int add_amd_xgbe_fdt_node(SysBusDevice *sbdev, void *opaque)
g_free(dt_name);
- if (vbasedev->num_regions != 5) {
+ if (vbasedev->num_initial_regions != 5) {
error_report("%s Does the host dt node combine XGBE/PHY?", __func__);
exit(1);
}
@@ -374,15 +374,15 @@ static int add_amd_xgbe_fdt_node(SysBusDevice *sbdev, void *opaque)
guest_clock_phandles[0],
guest_clock_phandles[1]);
- reg_attr = g_new(uint32_t, vbasedev->num_regions * 2);
- for (i = 0; i < vbasedev->num_regions; i++) {
+ reg_attr = g_new(uint32_t, vbasedev->num_initial_regions * 2);
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
mmio_base = platform_bus_get_mmio_addr(pbus, sbdev, i);
reg_attr[2 * i] = cpu_to_be32(mmio_base);
reg_attr[2 * i + 1] = cpu_to_be32(
memory_region_size(vdev->regions[i]->mem));
}
qemu_fdt_setprop(guest_fdt, nodename, "reg", reg_attr,
- vbasedev->num_regions * 2 * sizeof(uint32_t));
+ vbasedev->num_initial_regions * 2 * sizeof(uint32_t));
irq_attr = g_new(uint32_t, vbasedev->num_irqs * 3);
for (i = 0; i < vbasedev->num_irqs; i++) {
diff --git a/hw/vfio-user/device.c b/hw/vfio-user/device.c
index 0609a7dc25..64ef35b320 100644
--- a/hw/vfio-user/device.c
+++ b/hw/vfio-user/device.c
@@ -134,7 +134,7 @@ static int vfio_user_device_io_get_region_info(VFIODevice *vbasedev,
VFIOUserFDs fds = { 0, 1, fd};
int ret;
- if (info->index > vbasedev->num_regions) {
+ if (info->index > vbasedev->num_initial_regions) {
return -EINVAL;
}
diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c
index 9560b8d851..4d9588e7aa 100644
--- a/hw/vfio/ccw.c
+++ b/hw/vfio/ccw.c
@@ -484,9 +484,9 @@ static bool vfio_ccw_get_region(VFIOCCWDevice *vcdev, Error **errp)
* We always expect at least the I/O region to be present. We also
* may have a variable number of regions governed by capabilities.
*/
- if (vdev->num_regions < VFIO_CCW_CONFIG_REGION_INDEX + 1) {
+ if (vdev->num_initial_regions < VFIO_CCW_CONFIG_REGION_INDEX + 1) {
error_setg(errp, "vfio: too few regions (%u), expected at least %u",
- vdev->num_regions, VFIO_CCW_CONFIG_REGION_INDEX + 1);
+ vdev->num_initial_regions, VFIO_CCW_CONFIG_REGION_INDEX + 1);
return false;
}
diff --git a/hw/vfio/device.c b/hw/vfio/device.c
index 52a1996dc4..0b459c0f7c 100644
--- a/hw/vfio/device.c
+++ b/hw/vfio/device.c
@@ -257,7 +257,7 @@ int vfio_device_get_region_info_type(VFIODevice *vbasedev, uint32_t type,
{
int i;
- for (i = 0; i < vbasedev->num_regions; i++) {
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
struct vfio_info_cap_header *hdr;
struct vfio_region_info_cap_type *cap_type;
@@ -466,7 +466,7 @@ void vfio_device_prepare(VFIODevice *vbasedev, VFIOContainerBase *bcontainer,
int i;
vbasedev->num_irqs = info->num_irqs;
- vbasedev->num_regions = info->num_regions;
+ vbasedev->num_initial_regions = info->num_regions;
vbasedev->flags = info->flags;
vbasedev->reset_works = !!(info->flags & VFIO_DEVICE_FLAGS_RESET);
@@ -476,10 +476,10 @@ void vfio_device_prepare(VFIODevice *vbasedev, VFIOContainerBase *bcontainer,
QLIST_INSERT_HEAD(&vfio_device_list, vbasedev, global_next);
vbasedev->reginfo = g_new0(struct vfio_region_info *,
- vbasedev->num_regions);
+ vbasedev->num_initial_regions);
if (vbasedev->use_region_fds) {
- vbasedev->region_fds = g_new0(int, vbasedev->num_regions);
- for (i = 0; i < vbasedev->num_regions; i++) {
+ vbasedev->region_fds = g_new0(int, vbasedev->num_initial_regions);
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
vbasedev->region_fds[i] = -1;
}
}
@@ -489,7 +489,7 @@ void vfio_device_unprepare(VFIODevice *vbasedev)
{
int i;
- for (i = 0; i < vbasedev->num_regions; i++) {
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
g_free(vbasedev->reginfo[i]);
if (vbasedev->region_fds != NULL && vbasedev->region_fds[i] != -1) {
close(vbasedev->region_fds[i]);
diff --git a/hw/vfio/iommufd.c b/hw/vfio/iommufd.c
index 48c590b6a9..dbcd861b27 100644
--- a/hw/vfio/iommufd.c
+++ b/hw/vfio/iommufd.c
@@ -668,7 +668,8 @@ found_container:
vfio_iommufd_cpr_register_device(vbasedev);
trace_iommufd_cdev_device_info(vbasedev->name, devfd, vbasedev->num_irqs,
- vbasedev->num_regions, vbasedev->flags);
+ vbasedev->num_initial_regions,
+ vbasedev->flags);
return true;
err_listener_register:
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 48da233cb2..9486521a90 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -2933,9 +2933,9 @@ bool vfio_pci_populate_device(VFIOPCIDevice *vdev, Error **errp)
return false;
}
- if (vbasedev->num_regions < VFIO_PCI_CONFIG_REGION_INDEX + 1) {
+ if (vbasedev->num_initial_regions < VFIO_PCI_CONFIG_REGION_INDEX + 1) {
error_setg(errp, "unexpected number of io regions %u",
- vbasedev->num_regions);
+ vbasedev->num_initial_regions);
return false;
}
diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index 5c1795a26f..c9349ba7b7 100644
--- a/hw/vfio/platform.c
+++ b/hw/vfio/platform.c
@@ -148,7 +148,7 @@ static void vfio_mmap_set_enabled(VFIOPlatformDevice *vdev, bool enabled)
{
int i;
- for (i = 0; i < vdev->vbasedev.num_regions; i++) {
+ for (i = 0; i < vdev->vbasedev.num_initial_regions; i++) {
vfio_region_mmaps_set_enabled(vdev->regions[i], enabled);
}
}
@@ -453,9 +453,9 @@ static bool vfio_populate_device(VFIODevice *vbasedev, Error **errp)
return false;
}
- vdev->regions = g_new0(VFIORegion *, vbasedev->num_regions);
+ vdev->regions = g_new0(VFIORegion *, vbasedev->num_initial_regions);
- for (i = 0; i < vbasedev->num_regions; i++) {
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
char *name = g_strdup_printf("VFIO %s region %d\n", vbasedev->name, i);
vdev->regions[i] = g_new0(VFIORegion, 1);
@@ -499,7 +499,7 @@ irq_err:
g_free(intp);
}
reg_error:
- for (i = 0; i < vbasedev->num_regions; i++) {
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
if (vdev->regions[i]) {
vfio_region_finalize(vdev->regions[i]);
}
@@ -608,7 +608,7 @@ static void vfio_platform_realize(DeviceState *dev, Error **errp)
}
}
- for (i = 0; i < vbasedev->num_regions; i++) {
+ for (i = 0; i < vbasedev->num_initial_regions; i++) {
if (vfio_region_mmap(vdev->regions[i])) {
warn_report("%s mmap unsupported, performance may be slow",
memory_region_name(vdev->regions[i]->mem));
diff --git a/include/hw/vfio/vfio-device.h b/include/hw/vfio/vfio-device.h
index 9290774299..df81d319b2 100644
--- a/include/hw/vfio/vfio-device.h
+++ b/include/hw/vfio/vfio-device.h
@@ -74,7 +74,7 @@ typedef struct VFIODevice {
VFIODeviceOps *ops;
VFIODeviceIOOps *io_ops;
unsigned int num_irqs;
- unsigned int num_regions;
+ unsigned int num_initial_regions;
unsigned int flags;
VFIOMigration *migration;
Error *migration_blocker;
--
2.47.3

View File

@ -0,0 +1,56 @@
From 95622c4261ef6e0eb6688196d87d3bed838aa91d Mon Sep 17 00:00:00 2001
From: Sebastian Ott <sebott@redhat.com>
Date: Wed, 29 Oct 2025 17:59:07 +0100
Subject: [PATCH 08/10] x86: create new rhel 10.2 specific pc-q35 machine type
RH-Author: Sebastian Ott <sebott@redhat.com>
RH-MergeRequest: 416: x86, arm: create new rhel 9.8, 10.2 specific machine types
RH-Jira: RHEL-105826 RHEL-105828
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
RH-Acked-by: Gavin Shan <gshan@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Commit: [3/4] 7f5a5fa45696e579cd08fb3869884ce9543badd5 (seott1/cos-qemu-kvm)
Signed-off-by: Sebastian Ott <sebott@redhat.com>
---
hw/i386/pc_q35.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index e5d10c0335..aea4735dd3 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -690,10 +690,20 @@ DEFINE_Q35_MACHINE(2, 6);
/* Red Hat Enterprise Linux machine types */
-static void pc_q35_rhel_machine_10_0_0_options(MachineClass *m)
+static void pc_q35_rhel_machine_10_2_0_options(MachineClass *m)
{
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
pc_q35_machine_options(m);
+ m->desc = "RHEL-10.2.0 PC (Q35 + ICH9, 2009)";
+ pcmc->smbios_stream_product = "RHEL";
+ pcmc->smbios_stream_version = "10.2.0";
+}
+DEFINE_Q35_MACHINE_AS_LATEST(10, 2, 0);
+
+static void pc_q35_rhel_machine_10_0_0_options(MachineClass *m)
+{
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
+ pc_q35_rhel_machine_10_2_0_options(m);
m->desc = "RHEL-10.0.0 PC (Q35 + ICH9, 2009)";
pcmc->smbios_stream_product = "RHEL";
pcmc->smbios_stream_version = "10.0.0";
@@ -707,7 +717,7 @@ static void pc_q35_rhel_machine_10_0_0_options(MachineClass *m)
compat_props_add(m->compat_props, pc_rhel_10_1_compat,
pc_rhel_10_1_compat_len);
}
-DEFINE_Q35_MACHINE_AS_LATEST(10, 0, 0);
+DEFINE_Q35_MACHINE(10, 0, 0);
static void pc_q35_rhel_machine_9_6_0_options(MachineClass *m)
{
--
2.47.3

View File

@ -0,0 +1,56 @@
From ee136e68450beb87b55e3668538b3a52fdf98736 Mon Sep 17 00:00:00 2001
From: Sebastian Ott <sebott@redhat.com>
Date: Wed, 29 Oct 2025 18:05:21 +0100
Subject: [PATCH 09/10] x86: create new rhel 9.8 specific pc-q35 machine type
RH-Author: Sebastian Ott <sebott@redhat.com>
RH-MergeRequest: 416: x86, arm: create new rhel 9.8, 10.2 specific machine types
RH-Jira: RHEL-105826 RHEL-105828
RH-Acked-by: Eric Auger <eric.auger@redhat.com>
RH-Acked-by: Gavin Shan <gshan@redhat.com>
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
RH-Commit: [4/4] 2bfa55e063b4551e8e3299cf4f7aa2520943076a (seott1/cos-qemu-kvm)
Signed-off-by: Sebastian Ott <sebott@redhat.com>
---
hw/i386/pc_q35.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index aea4735dd3..efbb5695c2 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -719,16 +719,27 @@ static void pc_q35_rhel_machine_10_0_0_options(MachineClass *m)
}
DEFINE_Q35_MACHINE(10, 0, 0);
+static void pc_q35_rhel_machine_9_8_0_options(MachineClass *m)
+{
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
+ pc_q35_machine_options(m);
+ m->desc = "RHEL-9.8.0 PC (Q35 + ICH9, 2009)";
+ pcmc->smbios_stream_product = "RHEL";
+ pcmc->smbios_stream_version = "9.8.0";
+
+ /* NB: remember to move this line to the *latest* RHEL 9 machine */
+ compat_props_add(m->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
+}
+DEFINE_Q35_MACHINE(9, 8, 0);
+
static void pc_q35_rhel_machine_9_6_0_options(MachineClass *m)
{
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
pc_q35_rhel_machine_10_0_0_options(m);
+ pc_q35_rhel_machine_9_8_0_options(m);
m->desc = "RHEL-9.6.0 PC (Q35 + ICH9, 2009)";
pcmc->smbios_stream_product = "RHEL";
pcmc->smbios_stream_version = "9.6.0";
-
- /* NB: remember to move this line to the *latest* RHEL 9 machine */
- compat_props_add(m->compat_props, hw_compat_rhel_9, hw_compat_rhel_9_len);
}
DEFINE_Q35_MACHINE(9, 6, 0);
--
2.47.3

View File

@ -143,7 +143,7 @@ Obsoletes: %{name}-block-ssh <= %{epoch}:%{version} \
Summary: QEMU is a machine emulator and virtualizer
Name: qemu-kvm
Version: 10.1.0
Release: 3%{?rcrel}%{?dist}%{?cc_suffix}
Release: 4%{?rcrel}%{?dist}%{?cc_suffix}
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
# Epoch 15 used for RHEL 8
# Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5)
@ -196,6 +196,36 @@ Patch24: kvm-pcie_sriov-make-pcie_sriov_pf_exit-safe-on-non-SR-IO.patch
Patch25: kvm-target-i386-add-compatibility-property-for-arch_capa.patch
# For RHEL-120253 - Backport fixes for PDCM and ARCH_CAPABILITIES migration incompatibility
Patch26: kvm-target-i386-add-compatibility-property-for-pdcm-feat.patch
# For RHEL-104009 - [IBM 10.2 FEAT] KVM: Enhance machine type definition to include CPI and PCI passthru capabilities (qemu)
# For RHEL-105823 - Add new -rhel10.2.0 machine type to qemu-kvm [s390x]
# For RHEL-73008 - [IBM 10.2 FEAT] KVM: Implement Control Program Identification (qemu)
Patch27: kvm-qapi-machine-s390x-add-QAPI-event-SCLP_CPI_INFO_AVAI.patch
# For RHEL-104009 - [IBM 10.2 FEAT] KVM: Enhance machine type definition to include CPI and PCI passthru capabilities (qemu)
# For RHEL-105823 - Add new -rhel10.2.0 machine type to qemu-kvm [s390x]
# For RHEL-73008 - [IBM 10.2 FEAT] KVM: Implement Control Program Identification (qemu)
Patch28: kvm-tests-functional-add-tests-for-SCLP-event-CPI.patch
# For RHEL-104009 - [IBM 10.2 FEAT] KVM: Enhance machine type definition to include CPI and PCI passthru capabilities (qemu)
# For RHEL-105823 - Add new -rhel10.2.0 machine type to qemu-kvm [s390x]
# For RHEL-73008 - [IBM 10.2 FEAT] KVM: Implement Control Program Identification (qemu)
Patch29: kvm-redhat-Add-new-rhel9.8.0-and-rhel10.2.0-machine-type.patch
# For RHEL-118810 - [RHEL 10.2] Windows 11 VM fails to boot up with ramfb='on' with QEMU 10.1
Patch30: kvm-vfio-rename-field-to-num_initial_regions.patch
# For RHEL-118810 - [RHEL 10.2] Windows 11 VM fails to boot up with ramfb='on' with QEMU 10.1
Patch31: kvm-vfio-only-check-region-info-cache-for-initial-region.patch
# For RHEL-105826 - Add new -rhel10.2.0 machine type to qemu-kvm [aarch64]
# For RHEL-105828 - Add new -rhel10.2.0 machine type to qemu-kvm [x86_64]
Patch32: kvm-arm-create-new-rhel-10.2-specific-virt-machine-type.patch
# For RHEL-105826 - Add new -rhel10.2.0 machine type to qemu-kvm [aarch64]
# For RHEL-105828 - Add new -rhel10.2.0 machine type to qemu-kvm [x86_64]
Patch33: kvm-arm-create-new-rhel-9.8-specific-virt-machine-type.patch
# For RHEL-105826 - Add new -rhel10.2.0 machine type to qemu-kvm [aarch64]
# For RHEL-105828 - Add new -rhel10.2.0 machine type to qemu-kvm [x86_64]
Patch34: kvm-x86-create-new-rhel-10.2-specific-pc-q35-machine-typ.patch
# For RHEL-105826 - Add new -rhel10.2.0 machine type to qemu-kvm [aarch64]
# For RHEL-105828 - Add new -rhel10.2.0 machine type to qemu-kvm [x86_64]
Patch35: kvm-x86-create-new-rhel-9.8-specific-pc-q35-machine-type.patch
# For RHEL-101929 - enable 'usb-bot' device for proper support of USB CD-ROM drives via libvirt
Patch36: kvm-rh-enable-CONFIG_USB_STORAGE_BOT.patch
%if %{have_clang}
BuildRequires: clang
@ -1275,6 +1305,32 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
%endif
%changelog
* Mon Nov 03 2025 Miroslav Rezanina <mrezanin@redhat.com> - 10.1.0-4
- kvm-qapi-machine-s390x-add-QAPI-event-SCLP_CPI_INFO_AVAI.patch [RHEL-104009 RHEL-105823 RHEL-73008]
- kvm-tests-functional-add-tests-for-SCLP-event-CPI.patch [RHEL-104009 RHEL-105823 RHEL-73008]
- kvm-redhat-Add-new-rhel9.8.0-and-rhel10.2.0-machine-type.patch [RHEL-104009 RHEL-105823 RHEL-73008]
- kvm-vfio-rename-field-to-num_initial_regions.patch [RHEL-118810]
- kvm-vfio-only-check-region-info-cache-for-initial-region.patch [RHEL-118810]
- kvm-arm-create-new-rhel-10.2-specific-virt-machine-type.patch [RHEL-105826 RHEL-105828]
- kvm-arm-create-new-rhel-9.8-specific-virt-machine-type.patch [RHEL-105826 RHEL-105828]
- kvm-x86-create-new-rhel-10.2-specific-pc-q35-machine-typ.patch [RHEL-105826 RHEL-105828]
- kvm-x86-create-new-rhel-9.8-specific-pc-q35-machine-type.patch [RHEL-105826 RHEL-105828]
- kvm-rh-enable-CONFIG_USB_STORAGE_BOT.patch [RHEL-101929]
- Resolves: RHEL-104009
([IBM 10.2 FEAT] KVM: Enhance machine type definition to include CPI and PCI passthru capabilities (qemu))
- Resolves: RHEL-105823
(Add new -rhel10.2.0 machine type to qemu-kvm [s390x])
- Resolves: RHEL-73008
([IBM 10.2 FEAT] KVM: Implement Control Program Identification (qemu))
- Resolves: RHEL-118810
([RHEL 10.2] Windows 11 VM fails to boot up with ramfb='on' with QEMU 10.1)
- Resolves: RHEL-105826
(Add new -rhel10.2.0 machine type to qemu-kvm [aarch64])
- Resolves: RHEL-105828
(Add new -rhel10.2.0 machine type to qemu-kvm [x86_64])
- Resolves: RHEL-101929
(enable 'usb-bot' device for proper support of USB CD-ROM drives via libvirt )
* Mon Oct 20 2025 Miroslav Rezanina <mrezanin@redhat.com> - 10.1.0-3
- kvm-arm-kvm-report-registers-we-failed-to-set.patch [RHEL-119368]
- kvm-pcie_sriov-make-pcie_sriov_pf_exit-safe-on-non-SR-IO.patch [RHEL-116443]