+++ /dev/null
-From 427661778c522c06d7b0ddc5330f37518a9eb704 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 10 Jan 2024 14:26:20 +0100
-Subject: arm64: scs: Work around full LTO issue with dynamic SCS
-
-From: Ard Biesheuvel <ardb@kernel.org>
-
-[ 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 <ardb@kernel.org>
-Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
-Reviewed-by: Kees Cook <keescook@chromium.org>
-Link: https://lore.kernel.org/r/20240110132619.258809-2-ardb+git@google.com
-Signed-off-by: Will Deacon <will@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
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
+++ /dev/null
-From 9d8d73251dc2720caa42aa1d3fc2f290232d9412 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 10 Jan 2024 14:26:20 +0100
-Subject: arm64: scs: Work around full LTO issue with dynamic SCS
-
-From: Ard Biesheuvel <ardb@kernel.org>
-
-[ 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 <ardb@kernel.org>
-Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
-Reviewed-by: Kees Cook <keescook@chromium.org>
-Link: https://lore.kernel.org/r/20240110132619.258809-2-ardb+git@google.com
-Signed-off-by: Will Deacon <will@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- 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
-
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