summary refs log tree commit diff
path: root/arch/xtensa
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2019-05-30 05:41:38 -0700
committerMax Filippov <jcmvbkbc@gmail.com>2019-05-30 06:53:53 -0700
commitadefd051a6707a6ca0ebad278d3c1c05c960fc3b (patch)
tree41f046afd554a63edf78e75170f0e4e5121aad1d /arch/xtensa
parentcd6c84d8f0cdc911df435bb075ba22ce3c605b07 (diff)
downloadlinux-adefd051a6707a6ca0ebad278d3c1c05c960fc3b.tar.gz
xtensa: Fix section mismatch between memblock_reserve and mem_reserve
Since commit 9012d011660ea5cf2 ("compiler: allow all arches to enable
CONFIG_OPTIMIZE_INLINING"), xtensa:tinyconfig fails to build with section
mismatch errors.

WARNING: vmlinux.o(.text.unlikely+0x68): Section mismatch in reference
	from the function ___pa()
	to the function .meminit.text:memblock_reserve()
WARNING: vmlinux.o(.text.unlikely+0x74): Section mismatch in reference
	from the function mem_reserve()
	to the function .meminit.text:memblock_reserve()
FATAL: modpost: Section mismatches detected.

This was not seen prior to the above mentioned commit because mem_reserve()
was always inlined.

Mark mem_reserve(() as __init_memblock to have it reside in the same
section as memblock_reserve().

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Message-Id: <1559220098-9955-1-git-send-email-linux@roeck-us.net>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa')
-rw-r--r--arch/xtensa/kernel/setup.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index c0ec24349421..176cb46bcf12 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -310,7 +310,8 @@ extern char _SecondaryResetVector_text_start;
 extern char _SecondaryResetVector_text_end;
 #endif
 
-static inline int mem_reserve(unsigned long start, unsigned long end)
+static inline int __init_memblock mem_reserve(unsigned long start,
+					      unsigned long end)
 {
 	return memblock_reserve(start, end - start);
 }