248e8acca4
- kvm-s390x-pci-avoid-double-enable-disable-of-aif.patch [RHEL-22411] - kvm-s390x-pci-refresh-fh-before-disabling-aif.patch [RHEL-22411] - kvm-s390x-pci-drive-ISM-reset-from-subsystem-reset.patch [RHEL-22411] - Resolves: RHEL-22411 ([s390x] VM fails to start with ISM passed through)
72 lines
2.5 KiB
Diff
72 lines
2.5 KiB
Diff
From fe70e87ef8d2f7e538867052e06012051919083f Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= <clg@redhat.com>
|
|
Date: Tue, 23 Jan 2024 13:59:24 +0100
|
|
Subject: [PATCH 2/3] s390x/pci: refresh fh before disabling aif
|
|
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: 349: s390x: Fix reset ordering of passthrough ISM devices
|
|
RH-Jira: RHEL-22411
|
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
RH-Commit: [2/3] 4a7d3fccdac508253bd7e5765973a08482022edb
|
|
|
|
JIRA: https://issues.redhat.com/browse/RHEL-22411
|
|
|
|
commit 30e35258e25c75c9d799c34fd89afcafffb37084
|
|
Author: Matthew Rosato <mjrosato@linux.ibm.com>
|
|
Date: Thu Jan 18 13:51:50 2024 -0500
|
|
|
|
s390x/pci: refresh fh before disabling aif
|
|
|
|
Typically we refresh the host fh during CLP enable, however it's possible
|
|
that the device goes through multiple reset events before the guest
|
|
performs another CLP enable. Let's handle this for now by refreshing the
|
|
host handle from vfio before disabling aif.
|
|
|
|
Fixes: 03451953c7 ("s390x/pci: reset ISM passthrough devices on shutdown and system reset")
|
|
Reported-by: Cédric Le Goater <clg@redhat.com>
|
|
Reviewed-by: Eric Farman <farman@linux.ibm.com>
|
|
Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
|
|
Message-ID: <20240118185151.265329-3-mjrosato@linux.ibm.com>
|
|
Reviewed-by: Cédric Le Goater <clg@redhat.com>
|
|
Signed-off-by: Thomas Huth <thuth@redhat.com>
|
|
|
|
Signed-off-by: Cédric Le Goater <clg@redhat.com>
|
|
---
|
|
hw/s390x/s390-pci-kvm.c | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
diff --git a/hw/s390x/s390-pci-kvm.c b/hw/s390x/s390-pci-kvm.c
|
|
index 1ee510436c..9eef4fc3ec 100644
|
|
--- a/hw/s390x/s390-pci-kvm.c
|
|
+++ b/hw/s390x/s390-pci-kvm.c
|
|
@@ -18,6 +18,7 @@
|
|
#include "hw/s390x/s390-pci-bus.h"
|
|
#include "hw/s390x/s390-pci-kvm.h"
|
|
#include "hw/s390x/s390-pci-inst.h"
|
|
+#include "hw/s390x/s390-pci-vfio.h"
|
|
#include "cpu_models.h"
|
|
|
|
bool s390_pci_kvm_interp_allowed(void)
|
|
@@ -64,6 +65,14 @@ int s390_pci_kvm_aif_disable(S390PCIBusDevice *pbdev)
|
|
return -EINVAL;
|
|
}
|
|
|
|
+ /*
|
|
+ * The device may have already been reset but we still want to relinquish
|
|
+ * the guest ISC, so always be sure to use an up-to-date host fh.
|
|
+ */
|
|
+ if (!s390_pci_get_host_fh(pbdev, &args.fh)) {
|
|
+ return -EPERM;
|
|
+ }
|
|
+
|
|
rc = kvm_vm_ioctl(kvm_state, KVM_S390_ZPCI_OP, &args);
|
|
if (rc == 0) {
|
|
pbdev->aif = false;
|
|
--
|
|
2.41.0
|
|
|