]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 Apr 2024 07:51:05 +0000 (09:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 Apr 2024 07:51:05 +0000 (09:51 +0200)
added patches:
virtio-reenable-config-if-freezing-device-failed.patch

queue-6.1/series
queue-6.1/virtio-reenable-config-if-freezing-device-failed.patch [new file with mode: 0644]

index 9aecfe73a60140fa7ad6bd688b3da43cb0b38038..f6afdfc4c9ded2234322bc67892648c03b55911f 100644 (file)
@@ -74,3 +74,4 @@ gcc-plugins-stackleak-avoid-.head.text-section.patch
 revert-scsi-sd-usb_storage-uas-access-media-prior-to-querying-device-properties.patch
 revert-scsi-core-add-struct-for-args-to-execution-functions.patch
 scsi-sd-usb_storage-uas-access-media-prior-to-querying-device-properties.patch
+virtio-reenable-config-if-freezing-device-failed.patch
diff --git a/queue-6.1/virtio-reenable-config-if-freezing-device-failed.patch b/queue-6.1/virtio-reenable-config-if-freezing-device-failed.patch
new file mode 100644 (file)
index 0000000..c8afa07
--- /dev/null
@@ -0,0 +1,55 @@
+From 310227f42882c52356b523e2f4e11690eebcd2ab Mon Sep 17 00:00:00 2001
+From: David Hildenbrand <david@redhat.com>
+Date: Tue, 13 Feb 2024 14:54:25 +0100
+Subject: virtio: reenable config if freezing device failed
+
+From: David Hildenbrand <david@redhat.com>
+
+commit 310227f42882c52356b523e2f4e11690eebcd2ab upstream.
+
+Currently, we don't reenable the config if freezing the device failed.
+
+For example, virtio-mem currently doesn't support suspend+resume, and
+trying to freeze the device will always fail. Afterwards, the device
+will no longer respond to resize requests, because it won't get notified
+about config changes.
+
+Let's fix this by re-enabling the config if freezing fails.
+
+Fixes: 22b7050a024d ("virtio: defer config changed notifications")
+Cc: <stable@kernel.org>
+Cc: "Michael S. Tsirkin" <mst@redhat.com>
+Cc: Jason Wang <jasowang@redhat.com>
+Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
+Signed-off-by: David Hildenbrand <david@redhat.com>
+Message-Id: <20240213135425.795001-1-david@redhat.com>
+Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/virtio/virtio.c |   10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+--- a/drivers/virtio/virtio.c
++++ b/drivers/virtio/virtio.c
+@@ -489,13 +489,19 @@ EXPORT_SYMBOL_GPL(unregister_virtio_devi
+ int virtio_device_freeze(struct virtio_device *dev)
+ {
+       struct virtio_driver *drv = drv_to_virtio(dev->dev.driver);
++      int ret;
+       virtio_config_disable(dev);
+       dev->failed = dev->config->get_status(dev) & VIRTIO_CONFIG_S_FAILED;
+-      if (drv && drv->freeze)
+-              return drv->freeze(dev);
++      if (drv && drv->freeze) {
++              ret = drv->freeze(dev);
++              if (ret) {
++                      virtio_config_enable(dev);
++                      return ret;
++              }
++      }
+       return 0;
+ }