diff --git a/kvm-ppc-pef.c-initialize-cgs-ready-in-kvmppc_svm_init.patch b/kvm-ppc-pef.c-initialize-cgs-ready-in-kvmppc_svm_init.patch new file mode 100644 index 0000000..dd982e3 --- /dev/null +++ b/kvm-ppc-pef.c-initialize-cgs-ready-in-kvmppc_svm_init.patch @@ -0,0 +1,69 @@ +From e496360f627cdc4202f185b63175ced08c8b1f07 Mon Sep 17 00:00:00 2001 +From: Daniel Henrique Barboza +Date: Wed, 23 Jun 2021 19:39:32 -0400 +Subject: [PATCH 3/6] ppc/pef.c: initialize cgs->ready in kvmppc_svm_init() + +RH-Author: Miroslav Rezanina +RH-MergeRequest: 22: Synchronize with RHEL-AV 8.5 release 23 to RHEL 9 +RH-Commit: [2/5] b204f898d2333686e30b14c050ac7a9289670f23 (mrezanin/centos-src-qemu-kvm) +RH-Bugzilla: 1957194 + +QEMU is failing to launch a CGS pSeries guest in a host that has PEF +support: + +qemu-system-ppc64: ../softmmu/vl.c:2585: qemu_machine_creation_done: Assertion `machine->cgs->ready' failed. +Aborted + +This is happening because we're not setting the cgs->ready flag that is +asserted in qemu_machine_creation_done() during machine start. + +cgs->ready is set in s390_pv_kvm_init() and sev_kvm_init(). Let's set it +in kvmppc_svm_init() as well. + +Reported-by: Ram Pai +Signed-off-by: Daniel Henrique Barboza +Message-Id: <20210528201619.52363-1-danielhb413@gmail.com> +Acked-by: Ram Pai +Signed-off-by: David Gibson +(cherry picked from commit b873ed83311d96644b544b10f6869a430660585a) +Signed-off-by: Daniel Henrique Barboza +Signed-off-by: Danilo C. L. de Paula +Signed-off-by: Miroslav Rezanina +--- + hw/ppc/pef.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/hw/ppc/pef.c b/hw/ppc/pef.c +index 573be3ed79..cc44d5e339 100644 +--- a/hw/ppc/pef.c ++++ b/hw/ppc/pef.c +@@ -41,7 +41,7 @@ struct PefGuest { + ConfidentialGuestSupport parent_obj; + }; + +-static int kvmppc_svm_init(Error **errp) ++static int kvmppc_svm_init(ConfidentialGuestSupport *cgs, Error **errp) + { + #ifdef CONFIG_KVM + static Error *pef_mig_blocker; +@@ -65,6 +65,8 @@ static int kvmppc_svm_init(Error **errp) + /* NB: This can fail if --only-migratable is used */ + migrate_add_blocker(pef_mig_blocker, &error_fatal); + ++ cgs->ready = true; ++ + return 0; + #else + g_assert_not_reached(); +@@ -102,7 +104,7 @@ int pef_kvm_init(ConfidentialGuestSupport *cgs, Error **errp) + return -1; + } + +- return kvmppc_svm_init(errp); ++ return kvmppc_svm_init(cgs, errp); + } + + int pef_kvm_reset(ConfidentialGuestSupport *cgs, Error **errp) +-- +2.27.0 + diff --git a/kvm-s390x-cpumodel-add-3931-and-3932.patch b/kvm-s390x-cpumodel-add-3931-and-3932.patch new file mode 100644 index 0000000..70ad80b --- /dev/null +++ b/kvm-s390x-cpumodel-add-3931-and-3932.patch @@ -0,0 +1,134 @@ +From 5536da8458b7825b084bfc94256bfdc1ca0127a3 Mon Sep 17 00:00:00 2001 +From: Christian Borntraeger +Date: Tue, 22 Jun 2021 22:19:23 +0200 +Subject: [PATCH 1/6] s390x/cpumodel: add 3931 and 3932 + +RH-Author: Cornelia Huck +RH-MergeRequest: 21: s390x/cpumodel: add 3931 and 3932 +RH-Commit: [1/1] b678fdf9364407c615678980330e496676e04f9e (cohuck/qemu-kvm-c9s) +RH-Bugzilla: 1932191 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: David Hildenbrand +RH-Acked-by: Thomas Huth + +This defines 5 new facilities and the new 3931 and 3932 machines. +As before the name is not yet known and we do use gen16a and gen16b. +The new features are part of the full model. + +The default model is still empty (same as z15) and will be added +in a separate patch at a later point in time. + +Also add the dependencies of new facilities and as a fix for z15 add +a dependency from S390_FEAT_VECTOR_PACKED_DECIMAL_ENH to +S390_VECTOR_PACKED_DECIMAL. + +[merged <20210701084348.26556-1-borntraeger@de.ibm.com>] +Signed-off-by: Christian Borntraeger +Message-Id: <20210622201923.150205-2-borntraeger@de.ibm.com> +Reviewed-by: David Hildenbrand +Signed-off-by: Cornelia Huck +(cherry picked from commit fb4a08121695a88acefcbcd86f1376df079eefee) +Signed-off-by: Cornelia Huck +Signed-off-by: Miroslav Rezanina +--- + target/s390x/cpu_features_def.h.inc | 5 +++++ + target/s390x/cpu_models.c | 6 ++++++ + target/s390x/gen-features.c | 14 ++++++++++++++ + 3 files changed, 25 insertions(+) + +diff --git a/target/s390x/cpu_features_def.h.inc b/target/s390x/cpu_features_def.h.inc +index 7db3449e04..e86662bb3b 100644 +--- a/target/s390x/cpu_features_def.h.inc ++++ b/target/s390x/cpu_features_def.h.inc +@@ -109,6 +109,11 @@ DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH, "vxpdeh", STFL, 152, "Vector-Packed-Decimal- + DEF_FEAT(MSA_EXT_9, "msa9-base", STFL, 155, "Message-security-assist-extension-9 facility (excluding subfunctions)") + DEF_FEAT(ETOKEN, "etoken", STFL, 156, "Etoken facility") + DEF_FEAT(UNPACK, "unpack", STFL, 161, "Unpack facility") ++DEF_FEAT(NNPA, "nnpa", STFL, 165, "NNPA facility") ++DEF_FEAT(VECTOR_PACKED_DECIMAL_ENH2, "vxpdeh2", STFL, 192, "Vector-Packed-Decimal-Enhancement facility 2") ++DEF_FEAT(BEAR_ENH, "beareh", STFL, 193, "BEAR-enhancement facility") ++DEF_FEAT(RDP, "rdp", STFL, 194, "Reset-DAT-protection facility") ++DEF_FEAT(PAI, "pai", STFL, 196, "Processor-Activity-Instrumentation facility") + + /* Features exposed via SCLP SCCB Byte 80 - 98 (bit numbers relative to byte-80) */ + DEF_FEAT(SIE_GSLS, "gsls", SCLP_CONF_CHAR, 40, "SIE: Guest-storage-limit-suppression facility") +diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c +index 9254ff46bf..3cb4d25a10 100644 +--- a/target/s390x/cpu_models.c ++++ b/target/s390x/cpu_models.c +@@ -88,6 +88,8 @@ static S390CPUDef s390_cpu_defs[] = { + CPUDEF_INIT(0x3907, 14, 1, 47, 0x08000000U, "z14ZR1", "IBM z14 Model ZR1 GA1"), + CPUDEF_INIT(0x8561, 15, 1, 47, 0x08000000U, "gen15a", "IBM z15 T01 GA1"), + CPUDEF_INIT(0x8562, 15, 1, 47, 0x08000000U, "gen15b", "IBM z15 T02 GA1"), ++ CPUDEF_INIT(0x3931, 16, 1, 47, 0x08000000U, "gen16a", "IBM 3931 GA1"), ++ CPUDEF_INIT(0x3932, 16, 1, 47, 0x08000000U, "gen16b", "IBM 3932 GA1"), + }; + + #define QEMU_MAX_CPU_TYPE 0x2964 +@@ -815,6 +817,8 @@ static void check_consistency(const S390CPUModel *model) + { S390_FEAT_MSA_EXT_9, S390_FEAT_MSA_EXT_4 }, + { S390_FEAT_MULTIPLE_EPOCH, S390_FEAT_TOD_CLOCK_STEERING }, + { S390_FEAT_VECTOR_PACKED_DECIMAL, S390_FEAT_VECTOR }, ++ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH, S390_FEAT_VECTOR_PACKED_DECIMAL }, ++ { S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, S390_FEAT_VECTOR_PACKED_DECIMAL_ENH }, + { S390_FEAT_VECTOR_ENH, S390_FEAT_VECTOR }, + { S390_FEAT_INSTRUCTION_EXEC_PROT, S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2 }, + { S390_FEAT_SIDE_EFFECT_ACCESS_ESOP2, S390_FEAT_ESOP }, +@@ -846,6 +850,8 @@ static void check_consistency(const S390CPUModel *model) + { S390_FEAT_PTFF_STOUE, S390_FEAT_MULTIPLE_EPOCH }, + { S390_FEAT_AP_QUEUE_INTERRUPT_CONTROL, S390_FEAT_AP }, + { S390_FEAT_DIAG_318, S390_FEAT_EXTENDED_LENGTH_SCCB }, ++ { S390_FEAT_NNPA, S390_FEAT_VECTOR }, ++ { S390_FEAT_RDP, S390_FEAT_LOCAL_TLB_CLEARING }, + }; + int i; + +diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c +index a6ec918e90..8f99cea665 100644 +--- a/target/s390x/gen-features.c ++++ b/target/s390x/gen-features.c +@@ -424,6 +424,8 @@ static uint16_t base_GEN15_GA1[] = { + S390_FEAT_MISC_INSTRUCTION_EXT3, + }; + ++#define base_GEN16_GA1 EmptyFeat ++ + /* Full features (in order of release) + * Automatically includes corresponding base features. + * Full features are all features this hardware supports even if kvm/QEMU do not +@@ -567,6 +569,15 @@ static uint16_t full_GEN15_GA1[] = { + S390_FEAT_UNPACK, + }; + ++static uint16_t full_GEN16_GA1[] = { ++ S390_FEAT_NNPA, ++ S390_FEAT_VECTOR_PACKED_DECIMAL_ENH2, ++ S390_FEAT_BEAR_ENH, ++ S390_FEAT_RDP, ++ S390_FEAT_PAI, ++}; ++ ++ + /* Default features (in order of release) + * Automatically includes corresponding base features. + * Default features are all features this version of QEMU supports for this +@@ -652,6 +663,8 @@ static uint16_t default_GEN15_GA1[] = { + S390_FEAT_ETOKEN, + }; + ++#define default_GEN16_GA1 EmptyFeat ++ + /* QEMU (CPU model) features */ + + static uint16_t qemu_V2_11[] = { +@@ -782,6 +795,7 @@ static CpuFeatDefSpec CpuFeatDef[] = { + CPU_FEAT_INITIALIZER(GEN14_GA1), + CPU_FEAT_INITIALIZER(GEN14_GA2), + CPU_FEAT_INITIALIZER(GEN15_GA1), ++ CPU_FEAT_INITIALIZER(GEN16_GA1), + }; + + #define FEAT_GROUP_INITIALIZER(_name) \ +-- +2.27.0 + diff --git a/kvm-spapr-Fix-EEH-capability-issue-on-KVM-guest-for-PCI-.patch b/kvm-spapr-Fix-EEH-capability-issue-on-KVM-guest-for-PCI-.patch new file mode 100644 index 0000000..e556d49 --- /dev/null +++ b/kvm-spapr-Fix-EEH-capability-issue-on-KVM-guest-for-PCI-.patch @@ -0,0 +1,160 @@ +From 389b2a01f9b75575996eaab195a9697840ae5f29 Mon Sep 17 00:00:00 2001 +From: Mahesh Salgaonkar +Date: Wed, 30 Jun 2021 13:27:47 -0400 +Subject: [PATCH 2/6] spapr: Fix EEH capability issue on KVM guest for PCI + passthru + +RH-Author: Miroslav Rezanina +RH-MergeRequest: 22: Synchronize with RHEL-AV 8.5 release 23 to RHEL 9 +RH-Commit: [1/5] 86642761bad229c080e180ea9ebd0a4f67d2a4f7 (mrezanin/centos-src-qemu-kvm) +RH-Bugzilla: 1957194 + +With upstream kernel, especially after commit 98ba956f6a389 +("powerpc/pseries/eeh: Rework device EEH PE determination") we see that KVM +guest isn't able to enable EEH option for PCI pass-through devices anymore. + +[root@atest-guest ~]# dmesg | grep EEH +[ 0.032337] EEH: pSeries platform initialized +[ 0.298207] EEH: No capable adapters found: recovery disabled. +[root@atest-guest ~]# + +So far the linux kernel was assuming pe_config_addr equal to device's +config_addr and using it to enable EEH on the PE through ibm,set-eeh-option +RTAS call. Which wasn't the correct way as per PAPR. The linux kernel +commit 98ba956f6a389 fixed this flow. With that fixed, linux now uses PE +config address returned by ibm,get-config-addr-info2 RTAS call to enable +EEH option per-PE basis instead of per-device basis. However this has +uncovered a bug in qemu where ibm,set-eeh-option is treating PE config +address as per-device config address. + +Hence in qemu guest with recent kernel the ibm,set-eeh-option RTAS call +fails with -3 return value indicating that there is no PCI device exist for +the specified PE config address. The rtas_ibm_set_eeh_option call uses +pci_find_device() to get the PC device that matches specific bus and devfn +extracted from PE config address passed as argument. Thus it tries to map +the PE config address to a single specific PCI device 'bus->devices[devfn]' +which always results into checking device on slot 0 'bus->devices[0]'. +This succeeds when there is a pass-through device (vfio-pci) present on +slot 0. But in cases where there is no pass-through device present in slot +0, but present in non-zero slots, ibm,set-eeh-option call fails to enable +the EEH capability. + +hw/ppc/spapr_pci_vfio.c: spapr_phb_vfio_eeh_set_option() + case RTAS_EEH_ENABLE: { + PCIHostState *phb; + PCIDevice *pdev; + + /* + * The EEH functionality is enabled on basis of PCI device, + * instead of PE. We need check the validity of the PCI + * device address. + */ + phb = PCI_HOST_BRIDGE(sphb); + pdev = pci_find_device(phb->bus, + (addr >> 16) & 0xFF, (addr >> 8) & 0xFF); + if (!pdev || !object_dynamic_cast(OBJECT(pdev), "vfio-pci")) { + return RTAS_OUT_PARAM_ERROR; + } + +hw/pci/pci.c:pci_find_device() + +PCIDevice *pci_find_device(PCIBus *bus, int bus_num, uint8_t devfn) +{ + bus = pci_find_bus_nr(bus, bus_num); + + if (!bus) + return NULL; + + return bus->devices[devfn]; +} + +This patch fixes ibm,set-eeh-option to check for presence of any PCI device +(vfio-pci) under specified bus and enable the EEH if found. The current +code already makes sure that all the devices on that bus are from same +iommu group (within same PE) and fail very early if it does not. + +After this fix guest is able to find EEH capable devices and enable EEH +recovery on it. + +[root@atest-guest ~]# dmesg | grep EEH +[ 0.048139] EEH: pSeries platform initialized +[ 0.405115] EEH: Capable adapter found: recovery enabled. +[root@atest-guest ~]# + +Reviewed-by: Daniel Henrique Barboza +Signed-off-by: Mahesh Salgaonkar +Message-Id: <162158429107.145117.5843504911924013125.stgit@jupiter> +Signed-off-by: David Gibson +(cherry picked from commit ac9ef668321ebb6eb871a0c4dd380fa7d7891b4e) +Signed-off-by: Daniel Henrique Barboza +Signed-off-by: Danilo C. L. de Paula +Signed-off-by: Miroslav Rezanina +--- + hw/ppc/spapr_pci_vfio.c | 40 +++++++++++++++++++++++++++++++++------- + 1 file changed, 33 insertions(+), 7 deletions(-) + +diff --git a/hw/ppc/spapr_pci_vfio.c b/hw/ppc/spapr_pci_vfio.c +index e0547b1740..6587c8cb5b 100644 +--- a/hw/ppc/spapr_pci_vfio.c ++++ b/hw/ppc/spapr_pci_vfio.c +@@ -47,6 +47,16 @@ void spapr_phb_vfio_reset(DeviceState *qdev) + spapr_phb_vfio_eeh_reenable(SPAPR_PCI_HOST_BRIDGE(qdev)); + } + ++static void spapr_eeh_pci_find_device(PCIBus *bus, PCIDevice *pdev, ++ void *opaque) ++{ ++ bool *found = opaque; ++ ++ if (object_dynamic_cast(OBJECT(pdev), "vfio-pci")) { ++ *found = true; ++ } ++} ++ + int spapr_phb_vfio_eeh_set_option(SpaprPhbState *sphb, + unsigned int addr, int option) + { +@@ -59,17 +69,33 @@ int spapr_phb_vfio_eeh_set_option(SpaprPhbState *sphb, + break; + case RTAS_EEH_ENABLE: { + PCIHostState *phb; +- PCIDevice *pdev; ++ bool found = false; + + /* +- * The EEH functionality is enabled on basis of PCI device, +- * instead of PE. We need check the validity of the PCI +- * device address. ++ * The EEH functionality is enabled per sphb level instead of ++ * per PCI device. We have already identified this specific sphb ++ * based on buid passed as argument to ibm,set-eeh-option rtas ++ * call. Now we just need to check the validity of the PCI ++ * pass-through devices (vfio-pci) under this sphb bus. ++ * We have already validated that all the devices under this sphb ++ * are from same iommu group (within same PE) before comming here. ++ * ++ * Prior to linux commit 98ba956f6a389 ("powerpc/pseries/eeh: ++ * Rework device EEH PE determination") kernel would call ++ * eeh-set-option for each device in the PE using the device's ++ * config_address as the argument rather than the PE address. ++ * Hence if we check validity of supplied config_addr whether ++ * it matches to this PHB will cause issues with older kernel ++ * versions v5.9 and older. If we return an error from ++ * eeh-set-option when the argument isn't a valid PE address ++ * then older kernels (v5.9 and older) will interpret that as ++ * EEH not being supported. + */ + phb = PCI_HOST_BRIDGE(sphb); +- pdev = pci_find_device(phb->bus, +- (addr >> 16) & 0xFF, (addr >> 8) & 0xFF); +- if (!pdev || !object_dynamic_cast(OBJECT(pdev), "vfio-pci")) { ++ pci_for_each_device(phb->bus, (addr >> 16) & 0xFF, ++ spapr_eeh_pci_find_device, &found); ++ ++ if (!found) { + return RTAS_OUT_PARAM_ERROR; + } + +-- +2.27.0 + diff --git a/qemu-kvm.spec b/qemu-kvm.spec index f43a170..9bc16fe 100644 --- a/qemu-kvm.spec +++ b/qemu-kvm.spec @@ -65,6 +65,9 @@ %if %{have_opengl} \ Requires: %{name}-ui-opengl = %{epoch}:%{version}-%{release} \ %endif \ +%if %{have_usbredir} \ +Requires: %{name}-hw-usbredir = %{epoch}:%{version}-%{release} \ +%endif \ Requires: %{name}-block-curl = %{epoch}:%{version}-%{release} \ Requires: %{name}-block-rbd = %{epoch}:%{version}-%{release} \ Requires: %{name}-block-ssh = %{epoch}:%{version}-%{release} @@ -72,7 +75,7 @@ Requires: %{name}-block-ssh = %{epoch}:%{version}-%{release} Summary: QEMU is a machine emulator and virtualizer Name: qemu-kvm Version: 6.0.0 -Release: 8%{?rcversion}%{?dist} +Release: 9%{?rcversion}%{?dist} # 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) @@ -191,6 +194,12 @@ Patch51: kvm-docs-Add-SEV-ES-documentation-to-amd-memory-encrypti.patch Patch52: kvm-docs-interop-firmware.json-Add-SEV-ES-support.patch # For bz#1978911 - Remove TPM Passthrough option from RHEL 9 Patch53: kvm-Disable-TPM-passthrough.patch +# For bz#1932191 - [IBM 9.0 FEAT] CPU Model for new IBM Z Hardware - qemu part (kvm) +Patch54: kvm-s390x-cpumodel-add-3931-and-3932.patch +# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta +Patch55: kvm-spapr-Fix-EEH-capability-issue-on-KVM-guest-for-PCI-.patch +# For bz#1957194 - Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta +Patch56: kvm-ppc-pef.c-initialize-cgs-ready-in-kvmppc_svm_init.patch # Source-git patches @@ -255,7 +264,7 @@ BuildRequires: perl-Test-Harness BuildRequires: libslirp-devel Requires: qemu-kvm-core = %{epoch}:%{version}-%{release} - +Requires: %{name}-docs = %{epoch}:%{version}-%{release} %{requires_all_modules} %define qemudocdir %{_docdir}/%{name} @@ -271,7 +280,6 @@ hardware for a full system such as a PC and its associated peripherals. Summary: qemu-kvm core components Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: qemu-img = %{epoch}:%{version}-%{release} -Recommends: qemu-kvm-docs %ifarch %{ix86} x86_64 Requires: edk2-ovmf %endif @@ -281,9 +289,6 @@ Requires: edk2-aarch64 Requires: libseccomp >= %{libseccomp_version} Requires: libusbx >= %{libusbx_version} -%if %{have_usbredir} -Requires: usbredir >= %{usbredir_version} -%endif %if %{have_fdt} Requires: libfdt >= %{libfdt_version} %endif @@ -411,6 +416,15 @@ Requires: mesa-dri-drivers This package provides opengl support. %endif +%if %{have_usbredir} +%package hw-usbredir +Summary: QEMU usbredir support +Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} +Requires: usbredir >= 0.7.1 + +%description hw-usbredir +This package provides usbredir support. +%endif %prep %if 0%{?rcversion} @@ -771,6 +785,10 @@ make DESTDIR=$RPM_BUILD_ROOT \ install mkdir -p $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset + +# Move vhost-user JSON files to the standard "qemu" directory +mkdir -p $RPM_BUILD_ROOT%{_datadir}/qemu +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/vhost-user $RPM_BUILD_ROOT%{_datadir}/qemu/ %endif # Install qemu-guest-agent service and udev rules @@ -1139,7 +1157,10 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %{_sysconfdir}/security/limits.d/95-kvm-memlock.conf %endif %{_libexecdir}/virtiofsd -%{_datadir}/%{name}/vhost-user/50-qemu-virtiofsd.json +# This is the standard location for vhost-user JSON files defined in the +# vhost-user specification for interoperability with other software. Unlike +# most other paths we use it's "qemu" instead of "qemu-kvm". +%{_datadir}/qemu/vhost-user/50-qemu-virtiofsd.json %files -n qemu-kvm-core %{_libexecdir}/qemu-kvm @@ -1149,9 +1170,6 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %{_datadir}/%{name}/systemtap/script.d/qemu_kvm.stp %{_datadir}/%{name}/systemtap/conf.d/qemu_kvm.conf -%if %{have_usbredir} - %{_libdir}/qemu-kvm/hw-usb-redirect.so -%endif %{_libdir}/qemu-kvm/hw-display-virtio-gpu.so %ifarch s390x %{_libdir}/qemu-kvm/hw-s390x-virtio-gpu-ccw.so @@ -1200,9 +1218,26 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %{_libdir}/qemu-kvm/ui-egl-headless.so %{_libdir}/qemu-kvm/ui-opengl.so %endif + +%if %{have_usbredir} +%files hw-usbredir + %{_libdir}/qemu-kvm/hw-usb-redirect.so +%endif %endif %changelog +* Mon Jul 19 2021 Miroslav Rezanina - 6.0.0-9 +- kvm-s390x-cpumodel-add-3931-and-3932.patch [bz#1932191] +- kvm-spapr-Fix-EEH-capability-issue-on-KVM-guest-for-PCI-.patch [bz#1957194] +- kvm-ppc-pef.c-initialize-cgs-ready-in-kvmppc_svm_init.patch [bz#1957194] +- kvm-redhat-Move-qemu-kvm-docs-dependency-to-qemu-kvm.patch [bz#1957194] +- kvm-redhat-introducting-qemu-kvm-hw-usbredir.patch [bz#1957194] +- kvm-redhat-use-the-standard-vhost-user-JSON-path.patch [bz#1957194] +- Resolves: bz#1932191 + ([IBM 9.0 FEAT] CPU Model for new IBM Z Hardware - qemu part (kvm)) +- Resolves: bz#1957194 + (Synchronize RHEL-AV 8.5.0 changes to RHEL 9.0.0 Beta) + * Mon Jul 12 2021 Miroslav Rezanina - 6.0.0-8 - kvm-Disable-TPM-passthrough.patch [bz#1978911] - kvm-redhat-Replace-the-kvm-setup.service-with-a-etc-modu.patch [bz#1978837]