]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.7-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jan 2024 17:46:59 +0000 (09:46 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jan 2024 17:46:59 +0000 (09:46 -0800)
added patches:
revert-drm-amdkfd-relocate-tba-tma-to-opposite-side-of-vm-hole.patch
rust-ignore-preserve-most-functions.patch

queue-6.7/revert-drm-amdkfd-relocate-tba-tma-to-opposite-side-of-vm-hole.patch [new file with mode: 0644]
queue-6.7/rust-ignore-preserve-most-functions.patch [new file with mode: 0644]
queue-6.7/series

diff --git a/queue-6.7/revert-drm-amdkfd-relocate-tba-tma-to-opposite-side-of-vm-hole.patch b/queue-6.7/revert-drm-amdkfd-relocate-tba-tma-to-opposite-side-of-vm-hole.patch
new file mode 100644 (file)
index 0000000..7e12f60
--- /dev/null
@@ -0,0 +1,79 @@
+From 0f35b0a7b8fa402adbffa2565047cdcc4c480153 Mon Sep 17 00:00:00 2001
+From: Kaibo Ma <ent3rm4n@gmail.com>
+Date: Wed, 3 Jan 2024 12:29:56 +0800
+Subject: Revert "drm/amdkfd: Relocate TBA/TMA to opposite side of VM hole"
+
+From: Kaibo Ma <ent3rm4n@gmail.com>
+
+commit 0f35b0a7b8fa402adbffa2565047cdcc4c480153 upstream.
+
+That commit causes NULL pointer dereferences in dmesgs when
+running applications using ROCm, including clinfo, blender,
+and PyTorch, since v6.6.1. Revert it to fix blender again.
+
+This reverts commit 96c211f1f9ef82183493f4ceed4e347b52849149.
+
+Closes: https://github.com/ROCm/ROCm/issues/2596
+Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/2991
+Reviewed-by: Jay Cornwall <jay.cornwall@amd.com>
+Signed-off-by: Kaibo Ma <ent3rm4n@gmail.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c |   26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c
+@@ -330,12 +330,6 @@ static void kfd_init_apertures_vi(struct
+       pdd->gpuvm_limit =
+               pdd->dev->kfd->shared_resources.gpuvm_size - 1;
+-      /* dGPUs: the reserved space for kernel
+-       * before SVM
+-       */
+-      pdd->qpd.cwsr_base = SVM_CWSR_BASE;
+-      pdd->qpd.ib_base = SVM_IB_BASE;
+-
+       pdd->scratch_base = MAKE_SCRATCH_APP_BASE_VI();
+       pdd->scratch_limit = MAKE_SCRATCH_APP_LIMIT(pdd->scratch_base);
+ }
+@@ -345,18 +339,18 @@ static void kfd_init_apertures_v9(struct
+       pdd->lds_base = MAKE_LDS_APP_BASE_V9();
+       pdd->lds_limit = MAKE_LDS_APP_LIMIT(pdd->lds_base);
+-      pdd->gpuvm_base = PAGE_SIZE;
++        /* Raven needs SVM to support graphic handle, etc. Leave the small
++         * reserved space before SVM on Raven as well, even though we don't
++         * have to.
++         * Set gpuvm_base and gpuvm_limit to CANONICAL addresses so that they
++         * are used in Thunk to reserve SVM.
++         */
++        pdd->gpuvm_base = SVM_USER_BASE;
+       pdd->gpuvm_limit =
+               pdd->dev->kfd->shared_resources.gpuvm_size - 1;
+       pdd->scratch_base = MAKE_SCRATCH_APP_BASE_V9();
+       pdd->scratch_limit = MAKE_SCRATCH_APP_LIMIT(pdd->scratch_base);
+-
+-      /*
+-       * Place TBA/TMA on opposite side of VM hole to prevent
+-       * stray faults from triggering SVM on these pages.
+-       */
+-      pdd->qpd.cwsr_base = pdd->dev->kfd->shared_resources.gpuvm_size;
+ }
+ int kfd_init_apertures(struct kfd_process *process)
+@@ -413,6 +407,12 @@ int kfd_init_apertures(struct kfd_proces
+                                       return -EINVAL;
+                               }
+                       }
++
++                        /* dGPUs: the reserved space for kernel
++                         * before SVM
++                         */
++                        pdd->qpd.cwsr_base = SVM_CWSR_BASE;
++                        pdd->qpd.ib_base = SVM_IB_BASE;
+               }
+               dev_dbg(kfd_device, "node id %u\n", id);
diff --git a/queue-6.7/rust-ignore-preserve-most-functions.patch b/queue-6.7/rust-ignore-preserve-most-functions.patch
new file mode 100644 (file)
index 0000000..f014566
--- /dev/null
@@ -0,0 +1,37 @@
+From bad098d76835c1379e1cf6afc935f8a7e050f83c Mon Sep 17 00:00:00 2001
+From: Matthew Maurer <mmaurer@google.com>
+Date: Tue, 31 Oct 2023 20:19:44 +0000
+Subject: rust: Ignore preserve-most functions
+
+From: Matthew Maurer <mmaurer@google.com>
+
+commit bad098d76835c1379e1cf6afc935f8a7e050f83c upstream.
+
+Neither bindgen nor Rust know about the preserve-most calling
+convention, and Clang describes it as unstable. Since we aren't using
+functions with this calling convention from Rust, blocklist them.
+
+These functions are only added to the build when list hardening is
+enabled, which is likely why others didn't notice this yet.
+
+Signed-off-by: Matthew Maurer <mmaurer@google.com>
+Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
+Reviewed-by: Alice Ryhl <aliceryhl@google.com>
+Link: https://lore.kernel.org/r/20231031201945.1412345-1-mmaurer@google.com
+[ Used Markdown for consistency with the other comments in the file. ]
+Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ rust/bindgen_parameters |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/rust/bindgen_parameters
++++ b/rust/bindgen_parameters
+@@ -20,3 +20,7 @@
+ # `seccomp`'s comment gets understood as a doctest
+ --no-doc-comments
++
++# These functions use the `__preserve_most` calling convention, which neither bindgen
++# nor Rust currently understand, and which Clang currently declares to be unstable.
++--blocklist-function __list_.*_report
index 9142e908043fb238838580c9b20759a9dc960728..fd0b6d7ff37e38587ea1c19a7d26d95feb6117c3 100644 (file)
@@ -381,3 +381,5 @@ selftests-bpf-add-assert-for-user-stacks-in-test_task_stack.patch
 binder-fix-async-space-check-for-0-sized-buffers.patch
 binder-fix-unused-alloc-free_async_space.patch
 input-atkbd-use-ab83-as-id-when-skipping-the-getid-command.patch
+rust-ignore-preserve-most-functions.patch
+revert-drm-amdkfd-relocate-tba-tma-to-opposite-side-of-vm-hole.patch