From 8793744c141a1ea1459d679590e58bcbf7f2819e Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Mon, 21 Mar 2022 03:33:36 -0400 Subject: [PATCH] * Mon Mar 21 2022 Miroslav Rezanina - 6.2.0-12 - kvm-RHEL-mark-old-machine-types-as-deprecated.patch [bz#2062813] - kvm-hw-virtio-vdpa-Fix-leak-of-host-notifier-memory-regi.patch [bz#2062828] - kvm-spec-Fix-obsolete-for-spice-subpackages.patch [bz#2062819 bz#2062817] - kvm-spec-Obsolete-old-usb-redir-subpackage.patch [bz#2062819] - kvm-spec-Obsolete-ssh-driver.patch [bz#2062817] - Resolves: bz#2062828 ([virtual network][rhel9][vDPA] qemu crash after hot unplug vdpa device [rhel-9.1.0]) - Resolves: bz#2062819 (Broken upgrade path due to qemu-kvm-hw-usbredir rename [rhel-9.1.0]) - Resolves: bz#2062817 (Missing qemu-kvm-block-ssh obsolete breaks upgrade path [rhel-9.1.0]) - Resolves: bz#2062813 (Mark all RHEL-8 and earlier machine types as deprecated [rhel-9.1.0]) --- ...mark-old-machine-types-as-deprecated.patch | 108 ++++++++++++++++++ ...ix-leak-of-host-notifier-memory-regi.patch | 60 ++++++++++ qemu-kvm.spec | 35 +++++- rpminspect.yaml | 1 + 4 files changed, 200 insertions(+), 4 deletions(-) create mode 100644 kvm-RHEL-mark-old-machine-types-as-deprecated.patch create mode 100644 kvm-hw-virtio-vdpa-Fix-leak-of-host-notifier-memory-regi.patch diff --git a/kvm-RHEL-mark-old-machine-types-as-deprecated.patch b/kvm-RHEL-mark-old-machine-types-as-deprecated.patch new file mode 100644 index 0000000..0b203cf --- /dev/null +++ b/kvm-RHEL-mark-old-machine-types-as-deprecated.patch @@ -0,0 +1,108 @@ +From 5b1b0ebbc938127e7cd0ea1056d8f21b6d51ff0d Mon Sep 17 00:00:00 2001 +From: Cornelia Huck +Date: Thu, 3 Mar 2022 10:57:37 +0100 +Subject: [PATCH 1/5] RHEL: mark old machine types as deprecated + +RH-Author: Miroslav Rezanina +RH-MergeRequest: 78: Synchronize with RHEL 9.0.0 build qemu-kvm-6.2.0-11.el9_0.1 +RH-Commit: [1/5] 88a9377cac9d4e9796f63c5726db7dc093c6460d (mrezanin/centos-src-qemu-kvm) +RH-Bugzilla: 2062828 2062819 2062817 2062813 +RH-Acked-by: Stefano Garzarella +RH-Acked-by: Cornelia Huck + +We want to make it obvious that we consider machine types for older +RHEL major releases to be deprecated; we only carry them for +compatibility purposes. + +Let's mark all rhel-7.x and rhel-8.x machine type as deprecated via +QEMU's existing deprecation mechanism; those machine types will +continue to work as expected, but commands like 'virsh capabilities', +'virsh dominfo', or the libvirt log will tag the machine as +deprecated. + +Signed-off-by: Cornelia Huck + +Forward-port of RHEL 9.0.0 MR 119 (RHEL: mark old machine types as deprecated) +--- + hw/core/machine.c | 6 ++++++ + hw/i386/pc_piix.c | 4 ++++ + hw/i386/pc_q35.c | 4 ++++ + hw/s390x/s390-virtio-ccw.c | 3 +++ + include/hw/boards.h | 2 ++ + 5 files changed, 19 insertions(+) + +diff --git a/hw/core/machine.c b/hw/core/machine.c +index 669d3d8b91..5fae55d6cd 100644 +--- a/hw/core/machine.c ++++ b/hw/core/machine.c +@@ -37,6 +37,12 @@ + #include "hw/virtio/virtio.h" + #include "hw/virtio/virtio-pci.h" + ++/* ++ * RHEL only: machine types for previous major releases are deprecated ++ */ ++const char *rhel_old_machine_deprecation = ++ "machine types for previous major releases are deprecated"; ++ + /* + * Mostly the same as hw_compat_6_0 and hw_compat_6_1 + */ +diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c +index fccb7f5fc9..cf68d7498c 100644 +--- a/hw/i386/pc_piix.c ++++ b/hw/i386/pc_piix.c +@@ -989,6 +989,10 @@ static void pc_machine_rhel760_options(MachineClass *m) + m->desc = "RHEL 7.6.0 PC (i440FX + PIIX, 1996)"; + m->async_pf_vmexit_disable = true; + m->smbus_no_migration_support = true; ++ ++ /* All RHEL machines for prior major releases are deprecated */ ++ m->deprecation_reason = rhel_old_machine_deprecation; ++ + pcmc->pvh_enabled = false; + pcmc->default_cpu_version = CPU_VERSION_LEGACY; + pcmc->kvmclock_create_always = false; +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index bf9ad32f0e..c8e06da084 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -674,6 +674,10 @@ static void pc_q35_machine_rhel860_options(MachineClass *m) + pc_q35_machine_rhel900_options(m); + m->desc = "RHEL-8.6.0 PC (Q35 + ICH9, 2009)"; + m->alias = NULL; ++ ++ /* All RHEL machines for prior major releases are deprecated */ ++ m->deprecation_reason = rhel_old_machine_deprecation; ++ + pcmc->smbios_stream_product = "RHEL-AV"; + pcmc->smbios_stream_version = "8.6.0"; + } +diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c +index 9da6e9b1d4..cc78a315e3 100644 +--- a/hw/s390x/s390-virtio-ccw.c ++++ b/hw/s390x/s390-virtio-ccw.c +@@ -1121,6 +1121,9 @@ static void ccw_machine_rhel860_instance_options(MachineState *machine) + static void ccw_machine_rhel860_class_options(MachineClass *mc) + { + ccw_machine_rhel900_class_options(mc); ++ ++ /* All RHEL machines for prior major releases are deprecated */ ++ mc->deprecation_reason = rhel_old_machine_deprecation; + } + DEFINE_CCW_MACHINE(rhel860, "rhel8.6.0", false); + +diff --git a/include/hw/boards.h b/include/hw/boards.h +index 3c3d2ad450..21d8d5528e 100644 +--- a/include/hw/boards.h ++++ b/include/hw/boards.h +@@ -464,4 +464,6 @@ extern const size_t hw_compat_rhel_8_0_len; + extern GlobalProperty hw_compat_rhel_7_6[]; + extern const size_t hw_compat_rhel_7_6_len; + ++extern const char *rhel_old_machine_deprecation; ++ + #endif +-- +2.31.1 + diff --git a/kvm-hw-virtio-vdpa-Fix-leak-of-host-notifier-memory-regi.patch b/kvm-hw-virtio-vdpa-Fix-leak-of-host-notifier-memory-regi.patch new file mode 100644 index 0000000..767991d --- /dev/null +++ b/kvm-hw-virtio-vdpa-Fix-leak-of-host-notifier-memory-regi.patch @@ -0,0 +1,60 @@ +From f62b9eb18b0cc7ceb5a842aa0db43dae9a568647 Mon Sep 17 00:00:00 2001 +From: Laurent Vivier +Date: Fri, 11 Feb 2022 18:02:59 +0100 +Subject: [PATCH 2/5] hw/virtio: vdpa: Fix leak of host-notifier memory-region + +RH-Author: Miroslav Rezanina +RH-MergeRequest: 78: Synchronize with RHEL 9.0.0 build qemu-kvm-6.2.0-11.el9_0.1 +RH-Commit: [2/5] 38cb408826a6925fc7c482a03e4364c6f918396e (mrezanin/centos-src-qemu-kvm) +RH-Bugzilla: 2062828 2062819 2062817 2062813 +RH-Acked-by: Stefano Garzarella +RH-Acked-by: Cornelia Huck + +BZ: https://bugzilla.redhat.com/2059786 +BRANCH: rhel-9.0.0 +BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=43688388 +UPTREAM: Merged + +If call virtio_queue_set_host_notifier_mr fails, should free +host-notifier memory-region. + +This problem can trigger a coredump with some vDPA drivers (mlx5, +but not with the vdpasim), if we unplug the virtio-net card from +the guest after a stop/start. + +The same fix has been done for vhost-user: + 1f89d3b91e3e ("hw/virtio: Fix leak of host-notifier memory-region") + +Fixes: d0416d487bd5 ("vhost-vdpa: map virtqueue notification area if possible") +Cc: jasowang@redhat.com +Resolves: https://bugzilla.redhat.com/2027208 +Signed-off-by: Laurent Vivier +Message-Id: <20220211170259.1388734-1-lvivier@redhat.com> +Cc: qemu-stable@nongnu.org +Acked-by: Jason Wang +Reviewed-by: Stefano Garzarella +Reviewed-by: Michael S. Tsirkin +Signed-off-by: Michael S. Tsirkin +(cherry picked from commit 98f7607ecda00dea3cbb2ed7b4427c96846efb83) +Signed-off-by: Laurent Vivier + +Forward-port of RHEL 9.0.0 MR 123 (hw/virtio: vdpa: Fix leak of host-notifier memory-region) +--- + hw/virtio/vhost-vdpa.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c +index bcaf00e09f..78da48a333 100644 +--- a/hw/virtio/vhost-vdpa.c ++++ b/hw/virtio/vhost-vdpa.c +@@ -415,6 +415,7 @@ static int vhost_vdpa_host_notifier_init(struct vhost_dev *dev, int queue_index) + g_free(name); + + if (virtio_queue_set_host_notifier_mr(vdev, queue_index, &n->mr, true)) { ++ object_unparent(OBJECT(&n->mr)); + munmap(addr, page_size); + goto err; + } +-- +2.31.1 + diff --git a/qemu-kvm.spec b/qemu-kvm.spec index 2d4f8e0..0634b34 100644 --- a/qemu-kvm.spec +++ b/qemu-kvm.spec @@ -135,16 +135,23 @@ Requires: %{name}-audio-pa = %{epoch}:%{version}-%{release} # removes {name}-ui-spice for upgrades from RHEL-8 # The "<= {version}" assumes RHEL-9 version >= RHEL-8 version (in # other words RHEL-9 rebases are done together/before RHEL-8 ones) + +# In addition, we obsolete some block drivers as we are no longer support +# them in default qemu-kvm installation. + +# Note: ssh driver wasn't removed yet just disabled due to late handling + %global obsoletes_some_modules \ -Obsoletes: %{name}-ui-spice <= %{version} \ -Obsoletes: %{name}-block-gluster <= %{version} \ -Obsoletes: %{name}-block-iscsi <= %{version} \ +Obsoletes: %{name}-ui-spice <= %{epoch}:%{version} \ +Obsoletes: %{name}-block-gluster <= %{epoch}:%{version} \ +Obsoletes: %{name}-block-iscsi <= %{epoch}:%{version} \ +Obsoletes: %{name}-block-ssh <= %{epoch}:%{version} \ Summary: QEMU is a machine emulator and virtualizer Name: qemu-kvm Version: 6.2.0 -Release: 11%{?rcrel}%{?dist}%{?cc_suffix} +Release: 12%{?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) @@ -279,6 +286,10 @@ Patch67: kvm-ui-vnc.c-Fixed-a-deadlock-bug.patch Patch68: kvm-memory-Fix-incorrect-calls-of-log_global_start-stop.patch # For bz#2044818 - Qemu Core Dumped when migrate -> migrate_cancel -> migrate again during guest is paused Patch69: kvm-memory-Fix-qemu-crash-on-starting-dirty-log-twice-wi.patch +# For bz#2062813 - Mark all RHEL-8 and earlier machine types as deprecated [rhel-9.1.0] +Patch70: kvm-RHEL-mark-old-machine-types-as-deprecated.patch +# For bz#2062828 - [virtual network][rhel9][vDPA] qemu crash after hot unplug vdpa device [rhel-9.1.0] +Patch71: kvm-hw-virtio-vdpa-Fix-leak-of-host-notifier-memory-regi.patch # Source-git patches @@ -594,6 +605,7 @@ Summary: QEMU usbredir support Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release} Requires: usbredir >= 0.7.1 Provides: %{name}-hw-usbredir +Obsoletes: %{name}-hw-usbredir <= %{epoch}:%{version} %description device-usb-redirect This package provides usbredir support. @@ -1324,6 +1336,21 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %endif %changelog +* Mon Mar 21 2022 Miroslav Rezanina - 6.2.0-12 +- kvm-RHEL-mark-old-machine-types-as-deprecated.patch [bz#2062813] +- kvm-hw-virtio-vdpa-Fix-leak-of-host-notifier-memory-regi.patch [bz#2062828] +- kvm-spec-Fix-obsolete-for-spice-subpackages.patch [bz#2062819 bz#2062817] +- kvm-spec-Obsolete-old-usb-redir-subpackage.patch [bz#2062819] +- kvm-spec-Obsolete-ssh-driver.patch [bz#2062817] +- Resolves: bz#2062828 + ([virtual network][rhel9][vDPA] qemu crash after hot unplug vdpa device [rhel-9.1.0]) +- Resolves: bz#2062819 + (Broken upgrade path due to qemu-kvm-hw-usbredir rename [rhel-9.1.0]) +- Resolves: bz#2062817 + (Missing qemu-kvm-block-ssh obsolete breaks upgrade path [rhel-9.1.0]) +- Resolves: bz#2062813 + (Mark all RHEL-8 and earlier machine types as deprecated [rhel-9.1.0]) + * Tue Mar 01 2022 Miroslav Rezanina - 6.2.0-11 - kvm-spec-Remove-qemu-virtiofsd.patch [bz#2055284] - Resolves: bz#2055284 diff --git a/rpminspect.yaml b/rpminspect.yaml index 16aec7d..889796d 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -5,6 +5,7 @@ inspections: badfuncs: off annocheck: - hardened: --skip-cf-protection --skip-property-note --ignore-unknown --verbose + - rhel-policy: --skip-cf-protection --skip-property-note --ignore-unknown --verbose ignore: - /usr/share/qemu-kvm/s390-ccw.img - /usr/share/qemu-kvm/s390-netboot.img