--- /dev/null
+From 76d0ecd42da6e2cc54980363ba790591c277f71c Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Tue, 1 Nov 2022 18:12:39 +0100
+Subject: once: fix section mismatch on clang builds
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+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 <ovt@google.com>
+Reported-by: Yongqin Liu <yongqin.liu@linaro.org>
+Tested-by: Yongqin Liu <yongqin.liu@linaro.org>
+Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
+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 <christophe.leroy@csgroup.eu>
+Cc: Eric Dumazet <edumazet@google.com>
+Cc: Willy Tarreau <w@1wt.eu>
+Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
+Cc: David S. Miller <davem@davemloft.net>
+Cc: Sasha Levin <sashal@kernel.org>
+Cc: Nathan Chancellor <nathan@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/linux/once.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/once.h b/include/linux/once.h
+index bb58e1c3aa03..3a6671d961b9 100644
+--- a/include/linux/once.h
++++ b/include/linux/once.h
+@@ -64,7 +64,7 @@ void __do_once_slow_done(bool *done, struct static_key_true *once_key,
+ #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); \
+--
+2.38.1
+