| From d0f5a4467f93ddd8fb99471d1750cb4bab8bd74f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 2 Mar 2021 13:08:29 -0700 |
| Subject: powerpc/prom: Mark identical_pvr_fixup as __init |
| |
| From: Nathan Chancellor <nathan@kernel.org> |
| |
| [ Upstream commit 1ef1dd9c7ed27b080445e1576e8a05957e0e4dfc ] |
| |
| If identical_pvr_fixup() is not inlined, there are two modpost warnings: |
| |
| WARNING: modpost: vmlinux.o(.text+0x54e8): Section mismatch in reference |
| from the function identical_pvr_fixup() to the function |
| .init.text:of_get_flat_dt_prop() |
| The function identical_pvr_fixup() references |
| the function __init of_get_flat_dt_prop(). |
| This is often because identical_pvr_fixup lacks a __init |
| annotation or the annotation of of_get_flat_dt_prop is wrong. |
| |
| WARNING: modpost: vmlinux.o(.text+0x551c): Section mismatch in reference |
| from the function identical_pvr_fixup() to the function |
| .init.text:identify_cpu() |
| The function identical_pvr_fixup() references |
| the function __init identify_cpu(). |
| This is often because identical_pvr_fixup lacks a __init |
| annotation or the annotation of identify_cpu is wrong. |
| |
| identical_pvr_fixup() calls two functions marked as __init and is only |
| called by a function marked as __init so it should be marked as __init |
| as well. At the same time, remove the inline keywork as it is not |
| necessary to inline this function. The compiler is still free to do so |
| if it feels it is worthwhile since commit 889b3c1245de ("compiler: |
| remove CONFIG_OPTIMIZE_INLINING entirely"). |
| |
| Fixes: 14b3d926a22b ("[POWERPC] 4xx: update 440EP(x)/440GR(x) identical PVR issue workaround") |
| Signed-off-by: Nathan Chancellor <nathan@kernel.org> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Link: https://github.com/ClangBuiltLinux/linux/issues/1316 |
| Link: https://lore.kernel.org/r/20210302200829.2680663-1-nathan@kernel.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/powerpc/kernel/prom.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c |
| index ae3c41730367..a7ebaa208416 100644 |
| --- a/arch/powerpc/kernel/prom.c |
| +++ b/arch/powerpc/kernel/prom.c |
| @@ -267,7 +267,7 @@ static struct feature_property { |
| }; |
| |
| #if defined(CONFIG_44x) && defined(CONFIG_PPC_FPU) |
| -static inline void identical_pvr_fixup(unsigned long node) |
| +static __init void identical_pvr_fixup(unsigned long node) |
| { |
| unsigned int pvr; |
| const char *model = of_get_flat_dt_prop(node, "model", NULL); |
| -- |
| 2.30.2 |
| |