From 6f1b5a09a6dcebfbe922e7a786df3c19c924f1c0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 22 Jan 2024 15:22:10 -0800 Subject: [PATCH] drop arm64 LTO patch --- ...round-full-lto-issue-with-dynamic-sc.patch | 51 ------------------- queue-6.6/series | 1 - ...round-full-lto-issue-with-dynamic-sc.patch | 51 ------------------- queue-6.7/series | 1 - 4 files changed, 104 deletions(-) delete mode 100644 queue-6.6/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch delete mode 100644 queue-6.7/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch diff --git a/queue-6.6/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch b/queue-6.6/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch deleted file mode 100644 index dea33fd9e60..00000000000 --- a/queue-6.6/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 427661778c522c06d7b0ddc5330f37518a9eb704 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 10 Jan 2024 14:26:20 +0100 -Subject: arm64: scs: Work around full LTO issue with dynamic SCS - -From: Ard Biesheuvel - -[ Upstream commit 8c5a19cb17a71e52303150335b459c7d2d28a155 ] - -Full LTO takes the '-mbranch-protection=none' passed to the compiler -when generating the dynamic shadow call stack patching code as a hint to -stop emitting PAC instructions altogether. (Thin LTO appears unaffected -by this) - -Work around this by stripping unwind tables from the object in question, -which should be sufficient to prevent the patching code from attempting -to patch itself. - -Fixes: 3b619e22c460 ("arm64: implement dynamic shadow call stack for Clang") -Signed-off-by: Ard Biesheuvel -Reviewed-by: Sami Tolvanen -Reviewed-by: Kees Cook -Link: https://lore.kernel.org/r/20240110132619.258809-2-ardb+git@google.com -Signed-off-by: Will Deacon -Signed-off-by: Sasha Levin ---- - arch/arm64/kernel/Makefile | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile -index d95b3d6b471a..e5d03a7039b4 100644 ---- a/arch/arm64/kernel/Makefile -+++ b/arch/arm64/kernel/Makefile -@@ -73,7 +73,13 @@ obj-$(CONFIG_ARM64_MTE) += mte.o - obj-y += vdso-wrap.o - obj-$(CONFIG_COMPAT_VDSO) += vdso32-wrap.o - obj-$(CONFIG_UNWIND_PATCH_PAC_INTO_SCS) += patch-scs.o --CFLAGS_patch-scs.o += -mbranch-protection=none -+ -+# We need to prevent the SCS patching code from patching itself. Using -+# -mbranch-protection=none here to avoid the patchable PAC opcodes from being -+# generated triggers an issue with full LTO on Clang, which stops emitting PAC -+# instructions altogether. So instead, omit the unwind tables used by the -+# patching code, so it will not be able to locate its own PAC instructions. -+CFLAGS_patch-scs.o += -fno-asynchronous-unwind-tables -fno-unwind-tables - - # Force dependency (vdso*-wrap.S includes vdso.so through incbin) - $(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so --- -2.43.0 - diff --git a/queue-6.6/series b/queue-6.6/series index 5f106030271..cb41e19d708 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -528,7 +528,6 @@ net-ethernet-ti-am65-cpsw-fix-max-mtu-to-fit-etherne.patch amt-do-not-use-overwrapped-cb-area.patch net-micrel-fix-ptp-frame-parsing-for-lan8841.patch net-phy-micrel-populate-.soft_reset-for-ksz9131.patch -arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch alsa-hda-properly-setup-hdmi-stream.patch mptcp-mptcp_parse_option-fix-for-mptcpopt_mp_join.patch mptcp-strict-validation-before-using-mp_opt-hmac.patch diff --git a/queue-6.7/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch b/queue-6.7/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch deleted file mode 100644 index 81382012809..00000000000 --- a/queue-6.7/arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 9d8d73251dc2720caa42aa1d3fc2f290232d9412 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 10 Jan 2024 14:26:20 +0100 -Subject: arm64: scs: Work around full LTO issue with dynamic SCS - -From: Ard Biesheuvel - -[ Upstream commit 8c5a19cb17a71e52303150335b459c7d2d28a155 ] - -Full LTO takes the '-mbranch-protection=none' passed to the compiler -when generating the dynamic shadow call stack patching code as a hint to -stop emitting PAC instructions altogether. (Thin LTO appears unaffected -by this) - -Work around this by stripping unwind tables from the object in question, -which should be sufficient to prevent the patching code from attempting -to patch itself. - -Fixes: 3b619e22c460 ("arm64: implement dynamic shadow call stack for Clang") -Signed-off-by: Ard Biesheuvel -Reviewed-by: Sami Tolvanen -Reviewed-by: Kees Cook -Link: https://lore.kernel.org/r/20240110132619.258809-2-ardb+git@google.com -Signed-off-by: Will Deacon -Signed-off-by: Sasha Levin ---- - arch/arm64/kernel/Makefile | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile -index d95b3d6b471a..e5d03a7039b4 100644 ---- a/arch/arm64/kernel/Makefile -+++ b/arch/arm64/kernel/Makefile -@@ -73,7 +73,13 @@ obj-$(CONFIG_ARM64_MTE) += mte.o - obj-y += vdso-wrap.o - obj-$(CONFIG_COMPAT_VDSO) += vdso32-wrap.o - obj-$(CONFIG_UNWIND_PATCH_PAC_INTO_SCS) += patch-scs.o --CFLAGS_patch-scs.o += -mbranch-protection=none -+ -+# We need to prevent the SCS patching code from patching itself. Using -+# -mbranch-protection=none here to avoid the patchable PAC opcodes from being -+# generated triggers an issue with full LTO on Clang, which stops emitting PAC -+# instructions altogether. So instead, omit the unwind tables used by the -+# patching code, so it will not be able to locate its own PAC instructions. -+CFLAGS_patch-scs.o += -fno-asynchronous-unwind-tables -fno-unwind-tables - - # Force dependency (vdso*-wrap.S includes vdso.so through incbin) - $(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so --- -2.43.0 - diff --git a/queue-6.7/series b/queue-6.7/series index 6c145cfe574..6540842943a 100644 --- a/queue-6.7/series +++ b/queue-6.7/series @@ -587,7 +587,6 @@ amt-do-not-use-overwrapped-cb-area.patch alsa-aloop-introduce-a-function-to-get-if-access-is-.patch net-micrel-fix-ptp-frame-parsing-for-lan8841.patch net-phy-micrel-populate-.soft_reset-for-ksz9131.patch -arm64-scs-work-around-full-lto-issue-with-dynamic-sc.patch alsa-hda-properly-setup-hdmi-stream.patch mptcp-mptcp_parse_option-fix-for-mptcpopt_mp_join.patch mptcp-strict-validation-before-using-mp_opt-hmac.patch -- 2.47.3