From: Sasha Levin Date: Mon, 4 Dec 2023 21:07:21 +0000 (-0500) Subject: Drop arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch X-Git-Tag: v4.14.332~21^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=77194ccea480fbfce3fd818b058713672b9d9e25;p=thirdparty%2Fkernel%2Fstable-queue.git Drop arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch Signed-off-by: Sasha Levin --- diff --git a/queue-4.19/arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch b/queue-4.19/arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch deleted file mode 100644 index a45b2b8c3f8..00000000000 --- a/queue-4.19/arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 4c762ee5a651ad98e47860959d05a8cb18248bdf Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 25 Oct 2023 10:21:28 -0700 -Subject: arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer - -From: Nathan Chancellor - -[ Upstream commit 146a15b873353f8ac28dc281c139ff611a3c4848 ] - -Prior to LLVM 15.0.0, LLVM's integrated assembler would incorrectly -byte-swap NOP when compiling for big-endian, and the resulting series of -bytes happened to match the encoding of FNMADD S21, S30, S0, S0. - -This went unnoticed until commit: - - 34f66c4c4d5518c1 ("arm64: Use a positive cpucap for FP/SIMD") - -Prior to that commit, the kernel would always enable the use of FPSIMD -early in boot when __cpu_setup() initialized CPACR_EL1, and so usage of -FNMADD within the kernel was not detected, but could result in the -corruption of user or kernel FPSIMD state. - -After that commit, the instructions happen to trap during boot prior to -FPSIMD being detected and enabled, e.g. - -| Unhandled 64-bit el1h sync exception on CPU0, ESR 0x000000001fe00000 -- ASIMD -| CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc3-00013-g34f66c4c4d55 #1 -| Hardware name: linux,dummy-virt (DT) -| pstate: 400000c9 (nZcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) -| pc : __pi_strcmp+0x1c/0x150 -| lr : populate_properties+0xe4/0x254 -| sp : ffffd014173d3ad0 -| x29: ffffd014173d3af0 x28: fffffbfffddffcb8 x27: 0000000000000000 -| x26: 0000000000000058 x25: fffffbfffddfe054 x24: 0000000000000008 -| x23: fffffbfffddfe000 x22: fffffbfffddfe000 x21: fffffbfffddfe044 -| x20: ffffd014173d3b70 x19: 0000000000000001 x18: 0000000000000005 -| x17: 0000000000000010 x16: 0000000000000000 x15: 00000000413e7000 -| x14: 0000000000000000 x13: 0000000000001bcc x12: 0000000000000000 -| x11: 00000000d00dfeed x10: ffffd414193f2cd0 x9 : 0000000000000000 -| x8 : 0101010101010101 x7 : ffffffffffffffc0 x6 : 0000000000000000 -| x5 : 0000000000000000 x4 : 0101010101010101 x3 : 000000000000002a -| x2 : 0000000000000001 x1 : ffffd014171f2988 x0 : fffffbfffddffcb8 -| Kernel panic - not syncing: Unhandled exception -| CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc3-00013-g34f66c4c4d55 #1 -| Hardware name: linux,dummy-virt (DT) -| Call trace: -| dump_backtrace+0xec/0x108 -| show_stack+0x18/0x2c -| dump_stack_lvl+0x50/0x68 -| dump_stack+0x18/0x24 -| panic+0x13c/0x340 -| el1t_64_irq_handler+0x0/0x1c -| el1_abort+0x0/0x5c -| el1h_64_sync+0x64/0x68 -| __pi_strcmp+0x1c/0x150 -| unflatten_dt_nodes+0x1e8/0x2d8 -| __unflatten_device_tree+0x5c/0x15c -| unflatten_device_tree+0x38/0x50 -| setup_arch+0x164/0x1e0 -| start_kernel+0x64/0x38c -| __primary_switched+0xbc/0xc4 - -Restrict CONFIG_CPU_BIG_ENDIAN to a known good assembler, which is -either GNU as or LLVM's IAS 15.0.0 and newer, which contains the linked -commit. - -Closes: https://github.com/ClangBuiltLinux/linux/issues/1948 -Link: https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c -Signed-off-by: Nathan Chancellor -Cc: stable@vger.kernel.org -Acked-by: Mark Rutland -Link: https://lore.kernel.org/r/20231025-disable-arm64-be-ias-b4-llvm-15-v1-1-b25263ed8b23@kernel.org -Signed-off-by: Catalin Marinas -Signed-off-by: Sasha Levin ---- - arch/arm64/Kconfig | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 92646f12a66d2..ff8e0db1693e9 100644 ---- a/arch/arm64/Kconfig -+++ b/arch/arm64/Kconfig -@@ -759,6 +759,8 @@ choice - config CPU_BIG_ENDIAN - bool "Build big-endian kernel" - depends on !LD_IS_LLD || LLD_VERSION >= 130000 -+ # https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c -+ depends on AS_IS_GNU || AS_VERSION >= 150000 - help - Say Y if you plan on running a kernel with a big-endian userspace. - --- -2.42.0 - diff --git a/queue-4.19/series b/queue-4.19/series index 221168cddf9..172b221e1b8 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -55,7 +55,6 @@ pci-aspm-disable-only-aspm_state_l1-when-driver-disa.patch revert-pci-aspm-disable-only-aspm_state_l1-when-driv.patch s390-mm-fix-phys-vs-virt-confusion-in-mark_kernel_px.patch s390-cmma-fix-detection-of-dat-pages.patch -arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch mtd-cfi_cmdset_0001-support-the-absence-of-protectio.patch mtd-cfi_cmdset_0001-byte-swap-otp-info.patch fbdev-stifb-make-the-sti-next-font-pointer-a-32-bit-.patch diff --git a/queue-5.4/arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch b/queue-5.4/arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch deleted file mode 100644 index 72b64fe70d5..00000000000 --- a/queue-5.4/arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 85f92e443bd225e10b31d0034d1e743620e5c6c6 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 25 Oct 2023 10:21:28 -0700 -Subject: arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer - -From: Nathan Chancellor - -[ Upstream commit 146a15b873353f8ac28dc281c139ff611a3c4848 ] - -Prior to LLVM 15.0.0, LLVM's integrated assembler would incorrectly -byte-swap NOP when compiling for big-endian, and the resulting series of -bytes happened to match the encoding of FNMADD S21, S30, S0, S0. - -This went unnoticed until commit: - - 34f66c4c4d5518c1 ("arm64: Use a positive cpucap for FP/SIMD") - -Prior to that commit, the kernel would always enable the use of FPSIMD -early in boot when __cpu_setup() initialized CPACR_EL1, and so usage of -FNMADD within the kernel was not detected, but could result in the -corruption of user or kernel FPSIMD state. - -After that commit, the instructions happen to trap during boot prior to -FPSIMD being detected and enabled, e.g. - -| Unhandled 64-bit el1h sync exception on CPU0, ESR 0x000000001fe00000 -- ASIMD -| CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc3-00013-g34f66c4c4d55 #1 -| Hardware name: linux,dummy-virt (DT) -| pstate: 400000c9 (nZcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) -| pc : __pi_strcmp+0x1c/0x150 -| lr : populate_properties+0xe4/0x254 -| sp : ffffd014173d3ad0 -| x29: ffffd014173d3af0 x28: fffffbfffddffcb8 x27: 0000000000000000 -| x26: 0000000000000058 x25: fffffbfffddfe054 x24: 0000000000000008 -| x23: fffffbfffddfe000 x22: fffffbfffddfe000 x21: fffffbfffddfe044 -| x20: ffffd014173d3b70 x19: 0000000000000001 x18: 0000000000000005 -| x17: 0000000000000010 x16: 0000000000000000 x15: 00000000413e7000 -| x14: 0000000000000000 x13: 0000000000001bcc x12: 0000000000000000 -| x11: 00000000d00dfeed x10: ffffd414193f2cd0 x9 : 0000000000000000 -| x8 : 0101010101010101 x7 : ffffffffffffffc0 x6 : 0000000000000000 -| x5 : 0000000000000000 x4 : 0101010101010101 x3 : 000000000000002a -| x2 : 0000000000000001 x1 : ffffd014171f2988 x0 : fffffbfffddffcb8 -| Kernel panic - not syncing: Unhandled exception -| CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc3-00013-g34f66c4c4d55 #1 -| Hardware name: linux,dummy-virt (DT) -| Call trace: -| dump_backtrace+0xec/0x108 -| show_stack+0x18/0x2c -| dump_stack_lvl+0x50/0x68 -| dump_stack+0x18/0x24 -| panic+0x13c/0x340 -| el1t_64_irq_handler+0x0/0x1c -| el1_abort+0x0/0x5c -| el1h_64_sync+0x64/0x68 -| __pi_strcmp+0x1c/0x150 -| unflatten_dt_nodes+0x1e8/0x2d8 -| __unflatten_device_tree+0x5c/0x15c -| unflatten_device_tree+0x38/0x50 -| setup_arch+0x164/0x1e0 -| start_kernel+0x64/0x38c -| __primary_switched+0xbc/0xc4 - -Restrict CONFIG_CPU_BIG_ENDIAN to a known good assembler, which is -either GNU as or LLVM's IAS 15.0.0 and newer, which contains the linked -commit. - -Closes: https://github.com/ClangBuiltLinux/linux/issues/1948 -Link: https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c -Signed-off-by: Nathan Chancellor -Cc: stable@vger.kernel.org -Acked-by: Mark Rutland -Link: https://lore.kernel.org/r/20231025-disable-arm64-be-ias-b4-llvm-15-v1-1-b25263ed8b23@kernel.org -Signed-off-by: Catalin Marinas -Signed-off-by: Sasha Levin ---- - arch/arm64/Kconfig | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 306772b7de5fc..b301b591dc35b 100644 ---- a/arch/arm64/Kconfig -+++ b/arch/arm64/Kconfig -@@ -888,6 +888,8 @@ choice - config CPU_BIG_ENDIAN - bool "Build big-endian kernel" - depends on !LD_IS_LLD || LLD_VERSION >= 130000 -+ # https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c -+ depends on AS_IS_GNU || AS_VERSION >= 150000 - help - Say Y if you plan on running a kernel with a big-endian userspace. - --- -2.42.0 - diff --git a/queue-5.4/series b/queue-5.4/series index 5f5d7fb8cff..5a8feb8092e 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -74,7 +74,6 @@ perf-intel-pt-fix-async-branch-flags.patch smb3-fix-touch-h-of-symlink.patch s390-mm-fix-phys-vs-virt-confusion-in-mark_kernel_px.patch s390-cmma-fix-detection-of-dat-pages.patch -arm64-restrict-cpu_big_endian-to-gnu-as-or-llvm-ias-.patch mtd-cfi_cmdset_0001-support-the-absence-of-protectio.patch mtd-cfi_cmdset_0001-byte-swap-otp-info.patch fbdev-stifb-make-the-sti-next-font-pointer-a-32-bit-.patch