From: Greg Kroah-Hartman Date: Tue, 1 Nov 2022 17:22:43 +0000 (+0100) Subject: 5.4-stable patches X-Git-Tag: v4.19.263~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=025481a2bab6c6f34d77f1b6e30bdff7b25c8343;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: once-fix-section-mismatch-on-clang-builds.patch --- diff --git a/queue-5.4/once-fix-section-mismatch-on-clang-builds.patch b/queue-5.4/once-fix-section-mismatch-on-clang-builds.patch new file mode 100644 index 00000000000..0eb8154d568 --- /dev/null +++ b/queue-5.4/once-fix-section-mismatch-on-clang-builds.patch @@ -0,0 +1,48 @@ +From 76d0ecd42da6e2cc54980363ba790591c277f71c Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Tue, 1 Nov 2022 18:12:39 +0100 +Subject: once: fix section mismatch on clang builds + +From: Greg Kroah-Hartman + +On older kernels (5.4 and older), building the kernel with clang can +cause the section name to end up with "" in them, which can cause lots +of runtime issues as that is not normally a valid portion of the string. + +This was fixed up in newer kernels with commit 33def8498fdd ("treewide: +Convert macro and uses of __section(foo) to __section("foo")") but +that's too heavy-handed for older kernels. + +So for now, fix up the problem that commit 62c07983bef9 ("once: add +DO_ONCE_SLOW() for sleepable contexts") caused by being backported by +removing the "" characters from the section definition. + +Reported-by: Oleksandr Tymoshenko +Reported-by: Yongqin Liu +Tested-by: Yongqin Liu +Cc: Naresh Kamboju +Link: https://lore.kernel.org/r/20221029011211.4049810-1-ovt@google.com +Link: https://lore.kernel.org/r/CAMSo37XApZ_F5nSQYWFsSqKdMv_gBpfdKG3KN1TDB+QNXqSh0A@mail.gmail.com +Cc: Christophe Leroy +Cc: Eric Dumazet +Cc: Willy Tarreau +Cc: Christophe Leroy +Cc: David S. Miller +Cc: Sasha Levin +Cc: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/once.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/once.h ++++ b/include/linux/once.h +@@ -64,7 +64,7 @@ void __do_once_slow_done(bool *done, str + #define DO_ONCE_SLOW(func, ...) \ + ({ \ + bool ___ret = false; \ +- static bool __section(".data.once") ___done = false; \ ++ static bool __section(.data.once) ___done = false; \ + static DEFINE_STATIC_KEY_TRUE(___once_key); \ + if (static_branch_unlikely(&___once_key)) { \ + ___ret = __do_once_slow_start(&___done); \ diff --git a/queue-5.4/series b/queue-5.4/series index 27eb28bad33..cd25bad1e61 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -61,3 +61,4 @@ nh-fix-scope-used-to-find-saddr-when-adding-non-gw-n.patch net-mlx5e-do-not-increment-esn-when-updating-ipsec-e.patch net-mlx5-fix-possible-use-after-free-in-async-comman.patch net-enetc-survive-memory-pressure-without-crashing.patch +once-fix-section-mismatch-on-clang-builds.patch