]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.6-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 10 Nov 2024 05:01:20 +0000 (06:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 10 Nov 2024 05:01:20 +0000 (06:01 +0100)
added patches:
riscv-purgatory-align-riscv_kernel_entry.patch

queue-6.6/riscv-purgatory-align-riscv_kernel_entry.patch [new file with mode: 0644]
queue-6.6/series

diff --git a/queue-6.6/riscv-purgatory-align-riscv_kernel_entry.patch b/queue-6.6/riscv-purgatory-align-riscv_kernel_entry.patch
new file mode 100644 (file)
index 0000000..88ad0f9
--- /dev/null
@@ -0,0 +1,47 @@
+From fb197c5d2fd24b9af3d4697d0cf778645846d6d5 Mon Sep 17 00:00:00 2001
+From: Daniel Maslowski <cyrevolt@googlemail.com>
+Date: Fri, 19 Jul 2024 19:04:37 +0200
+Subject: riscv/purgatory: align riscv_kernel_entry
+
+From: Daniel Maslowski <cyrevolt@googlemail.com>
+
+commit fb197c5d2fd24b9af3d4697d0cf778645846d6d5 upstream.
+
+When alignment handling is delegated to the kernel, everything must be
+word-aligned in purgatory, since the trap handler is then set to the
+kexec one. Without the alignment, hitting the exception would
+ultimately crash. On other occasions, the kernel's handler would take
+care of exceptions.
+This has been tested on a JH7110 SoC with oreboot and its SBI delegating
+unaligned access exceptions and the kernel configured to handle them.
+
+Fixes: 736e30af583fb ("RISC-V: Add purgatory")
+Signed-off-by: Daniel Maslowski <cyrevolt@gmail.com>
+Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
+Link: https://lore.kernel.org/r/20240719170437.247457-1-cyrevolt@gmail.com
+Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/riscv/purgatory/entry.S |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/arch/riscv/purgatory/entry.S
++++ b/arch/riscv/purgatory/entry.S
+@@ -11,6 +11,8 @@
+ .macro        size, sym:req
+       .size \sym, . - \sym
+ .endm
++#include <asm/asm.h>
++#include <linux/linkage.h>
+ .text
+@@ -39,6 +41,7 @@ size purgatory_start
+ .data
++.align LGREG
+ .globl riscv_kernel_entry
+ riscv_kernel_entry:
+       .quad   0
index f9e007ac7991e91233a16b17e7df537b00d50a24..34c0eba20068f63589c6c39e752b2c51fcc736bf 100644 (file)
@@ -95,3 +95,4 @@ arm64-sve-discard-stale-cpu-state-when-handling-sve-traps.patch
 arm64-kconfig-make-sme-depend-on-broken-for-now.patch
 arm64-smccc-remove-broken-support-for-smcccv1.3-sve-discard-hint.patch
 btrfs-reinitialize-delayed-ref-list-after-deleting-it-from-the-list.patch
+riscv-purgatory-align-riscv_kernel_entry.patch