]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Nov 2022 09:02:37 +0000 (10:02 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Nov 2022 09:02:37 +0000 (10:02 +0100)
added patches:
drm-i915-gvt-add-missing-vfio_unregister_group_dev-call.patch
m68k-rework-bi_virt_rng_seed-as-bi_rng_seed.patch

queue-6.0/drm-i915-gvt-add-missing-vfio_unregister_group_dev-call.patch [new file with mode: 0644]
queue-6.0/m68k-rework-bi_virt_rng_seed-as-bi_rng_seed.patch [new file with mode: 0644]
queue-6.0/series

diff --git a/queue-6.0/drm-i915-gvt-add-missing-vfio_unregister_group_dev-call.patch b/queue-6.0/drm-i915-gvt-add-missing-vfio_unregister_group_dev-call.patch
new file mode 100644 (file)
index 0000000..ab53471
--- /dev/null
@@ -0,0 +1,42 @@
+From f423fa1bc9fe1978e6b9f54927411b62cb43eb04 Mon Sep 17 00:00:00 2001
+From: Jason Gunthorpe <jgg@nvidia.com>
+Date: Thu, 29 Sep 2022 14:48:35 -0300
+Subject: drm/i915/gvt: Add missing vfio_unregister_group_dev() call
+
+From: Jason Gunthorpe <jgg@nvidia.com>
+
+commit f423fa1bc9fe1978e6b9f54927411b62cb43eb04 upstream.
+
+When converting to directly create the vfio_device the mdev driver has to
+put a vfio_register_emulated_iommu_dev() in the probe() and a pairing
+vfio_unregister_group_dev() in the remove.
+
+This was missed for gvt, add it.
+
+Cc: stable@vger.kernel.org
+Fixes: 978cf586ac35 ("drm/i915/gvt: convert to use vfio_register_emulated_iommu_dev")
+Reported-by: Alex Williamson <alex.williamson@redhat.com>
+Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
+Reviewed-by: Kevin Tian <kevin.tian@intel.com>
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+Link: https://lore.kernel.org/r/0-v1-013609965fe8+9d-vfio_gvt_unregister_jgg@nvidia.com
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
+Reviewed-by: Kevin Tian <kevin.tian@intel.com> # v6.0 backport
+Signed-off-by: Alex Williamson <alex.williamson@redhat.com> # v6.0 backport
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/i915/gvt/kvmgt.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
++++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
+@@ -1595,6 +1595,9 @@ static void intel_vgpu_remove(struct mde
+       if (WARN_ON_ONCE(vgpu->attached))
+               return;
++
++      vfio_unregister_group_dev(&vgpu->vfio_device);
++      vfio_uninit_group_dev(&vgpu->vfio_device);
+       intel_gvt_destroy_vgpu(vgpu);
+ }
diff --git a/queue-6.0/m68k-rework-bi_virt_rng_seed-as-bi_rng_seed.patch b/queue-6.0/m68k-rework-bi_virt_rng_seed-as-bi_rng_seed.patch
new file mode 100644 (file)
index 0000000..b84957d
--- /dev/null
@@ -0,0 +1,119 @@
+From dc63a086daee92c63e392e4e7cd7ed61f3693026 Mon Sep 17 00:00:00 2001
+From: "Jason A. Donenfeld" <Jason@zx2c4.com>
+Date: Tue, 27 Sep 2022 15:08:35 +0200
+Subject: m68k: Rework BI_VIRT_RNG_SEED as BI_RNG_SEED
+
+From: Jason A. Donenfeld <Jason@zx2c4.com>
+
+commit dc63a086daee92c63e392e4e7cd7ed61f3693026 upstream.
+
+This is useful on !virt platforms for kexec, so change things from
+BI_VIRT_RNG_SEED to be BI_RNG_SEED, and simply remove BI_VIRT_RNG_SEED
+because it only ever lasted one release, and nothing is broken by not
+having it. At the same time, keep a comment noting that it's been
+removed, so that ID isn't reused. In addition, we previously documented
+2-byte alignment, but 4-byte alignment is actually necessary, so update
+that comment.
+
+Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Fixes: a1ee38ab1a75 ("m68k: virt: Use RNG seed from bootinfo block")
+Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
+Link: https://lore.kernel.org/r/20220927130835.1629806-2-Jason@zx2c4.com
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/m68k/include/uapi/asm/bootinfo-virt.h |    9 ++-------
+ arch/m68k/include/uapi/asm/bootinfo.h      |    7 +++++++
+ arch/m68k/kernel/setup_mm.c                |   12 ++++++++++++
+ arch/m68k/virt/config.c                    |   11 -----------
+ 4 files changed, 21 insertions(+), 18 deletions(-)
+
+--- a/arch/m68k/include/uapi/asm/bootinfo-virt.h
++++ b/arch/m68k/include/uapi/asm/bootinfo-virt.h
+@@ -13,13 +13,8 @@
+ #define BI_VIRT_VIRTIO_BASE   0x8004
+ #define BI_VIRT_CTRL_BASE     0x8005
+-/*
+- * A random seed used to initialize the RNG. Record format:
+- *
+- *   - length       [ 2 bytes, 16-bit big endian ]
+- *   - seed data    [ `length` bytes, padded to preserve 2-byte alignment ]
+- */
+-#define BI_VIRT_RNG_SEED      0x8006
++/* No longer used -- replaced with BI_RNG_SEED -- but don't reuse this index:
++ * #define BI_VIRT_RNG_SEED   0x8006 */
+ #define VIRT_BOOTI_VERSION    MK_BI_VERSION(2, 0)
+--- a/arch/m68k/include/uapi/asm/bootinfo.h
++++ b/arch/m68k/include/uapi/asm/bootinfo.h
+@@ -64,6 +64,13 @@ struct mem_info {
+                                       /* (struct mem_info) */
+ #define BI_COMMAND_LINE               0x0007  /* kernel command line parameters */
+                                       /* (string) */
++/*
++ * A random seed used to initialize the RNG. Record format:
++ *
++ *   - length       [ 2 bytes, 16-bit big endian ]
++ *   - seed data    [ `length` bytes, padded to preserve 4-byte struct alignment ]
++ */
++#define BI_RNG_SEED           0x0008
+     /*
+--- a/arch/m68k/kernel/setup_mm.c
++++ b/arch/m68k/kernel/setup_mm.c
+@@ -25,6 +25,7 @@
+ #include <linux/module.h>
+ #include <linux/nvram.h>
+ #include <linux/initrd.h>
++#include <linux/random.h>
+ #include <asm/bootinfo.h>
+ #include <asm/byteorder.h>
+@@ -151,6 +152,17 @@ static void __init m68k_parse_bootinfo(c
+                               sizeof(m68k_command_line));
+                       break;
++              case BI_RNG_SEED: {
++                      u16 len = be16_to_cpup(data);
++                      add_bootloader_randomness(data + 2, len);
++                      /*
++                       * Zero the data to preserve forward secrecy, and zero the
++                       * length to prevent kexec from using it.
++                       */
++                      memzero_explicit((void *)data, len + 2);
++                      break;
++              }
++
+               default:
+                       if (MACH_IS_AMIGA)
+                               unknown = amiga_parse_bootinfo(record);
+--- a/arch/m68k/virt/config.c
++++ b/arch/m68k/virt/config.c
+@@ -2,7 +2,6 @@
+ #include <linux/reboot.h>
+ #include <linux/serial_core.h>
+-#include <linux/random.h>
+ #include <clocksource/timer-goldfish.h>
+ #include <asm/bootinfo.h>
+@@ -93,16 +92,6 @@ int __init virt_parse_bootinfo(const str
+               data += 4;
+               virt_bi_data.virtio.irq = be32_to_cpup(data);
+               break;
+-      case BI_VIRT_RNG_SEED: {
+-              u16 len = be16_to_cpup(data);
+-              add_bootloader_randomness(data + 2, len);
+-              /*
+-               * Zero the data to preserve forward secrecy, and zero the
+-               * length to prevent kexec from using it.
+-               */
+-              memzero_explicit((void *)data, len + 2);
+-              break;
+-      }
+       default:
+               unknown = 1;
+               break;
index 2e33cbdfb593b5a86d3241f26db7e6f46de8c77b..3a94befff4cb5947df2781706f66bbd074e5b7a5 100644 (file)
@@ -1 +1,3 @@
 thunderbolt-add-dp-out-resource-when-dp-tunnel-is-discovered.patch
+drm-i915-gvt-add-missing-vfio_unregister_group_dev-call.patch
+m68k-rework-bi_virt_rng_seed-as-bi_rng_seed.patch