From: Sasha Levin <sashal@kernel.org>
To: Rob Herring <robh@kernel.org>,
Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Saravana Kannan <saravanak@kernel.org>,
Mike Rapoport <rppt@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
devicetree@vger.kernel.org, llvm@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: [PATCH] of: reserved_mem: mark the early_memremap() array helpers __init
Date: Mon, 2 Nov 2026 17:45:28 -0500 [thread overview]
Message-ID: <20261102224528.2495168-1-sashal@kernel.org> (raw)
early_array_map() and early_array_unmap() wrap early_memremap() and
early_memunmap(), which are __init, but the helpers themselves are only
static inline. If the compiler decides not to inline them, the out of
line copy ends up in .text and modpost complains. clang 21 does this for
a riscv allnoconfig build:
WARNING: modpost: vmlinux: section mismatch in reference: early_array_map+0x30 (section: .text) -> early_memremap (section: .init.text)
ERROR: modpost: Section mismatches detected.
Both helpers are only called from fdt_scan_reserved_mem(), which is
__init, so mark them __init too.
Fixes: aa05faf81583 ("of: reserved_mem: allocate and map the reserved_mem array early")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
KernelCI's clang-21 riscv builds fail on this once dt/for-next is
merged, so it will probably show up in tomorrow's linux-next as well.
Tested with a riscv LLVM=1 allnoconfig build (fails at modpost before,
links after), plus W=1 builds of of_reserved_mem.o for riscv and arm64
defconfig with clang, and arm64 defconfig with gcc.
drivers/of/of_reserved_mem.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
index 0fd1683cba011..630ad65466385 100644
--- a/drivers/of/of_reserved_mem.c
+++ b/drivers/of/of_reserved_mem.c
@@ -66,11 +66,11 @@ static int __init early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
*/
#if defined(CONFIG_GENERIC_EARLY_IOREMAP) && !defined(CONFIG_PPC64)
#include <asm/early_ioremap.h>
-static inline void *early_array_map(void *array, size_t size)
+static inline void * __init early_array_map(void *array, size_t size)
{
return early_memremap(__pa(array), size);
}
-static inline void early_array_unmap(void *map, size_t size)
+static inline void __init early_array_unmap(void *map, size_t size)
{
early_memunmap(map, size);
}
--
2.53.0
reply other threads:[~2026-11-02 22:45 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261102224528.2495168-1-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=m.szyprowski@samsung.com \
--cc=nathan@kernel.org \
--cc=robh@kernel.org \
--cc=rppt@kernel.org \
--cc=saravanak@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®