Message ID | 20230615-mips-mark-core_vpe_count-as-init-v1-1-99c124367ea8@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 6e6251317c962b7c15ad2d8591f3103990c80701 |
Headers | show |
Series | MIPS: Mark core_vpe_count() as __init | expand |
On Thu, Jun 15, 2023 at 12:21 PM Nathan Chancellor <nathan@kernel.org> wrote: > > After commit 96cb8ae28c65 ("MIPS: Rework smt cmdline parameters"), > modpost complains when building with clang: > > WARNING: modpost: vmlinux.o: section mismatch in reference: core_vpe_count (section: .text) -> smp_max_threads (section: .init.data) > > This warning occurs when core_vpe_count() is not inlined, as it appears > that a non-init function is referring to an init symbol. However, this > is not a problem in practice because core_vpe_count() is only called > from __init functions, cps_smp_setup() and cps_prepare_cpus(). > > Resolve the warning by marking core_vpe_count() as __init, as it is only > called in an init context so it can refer to init functions and symbols > and have its memory freed on boot. > > Fixes: 96cb8ae28c65 ("MIPS: Rework smt cmdline parameters") > Signed-off-by: Nathan Chancellor <nathan@kernel.org> Thanks for the patch! Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > --- > arch/mips/kernel/smp-cps.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/mips/kernel/smp-cps.c b/arch/mips/kernel/smp-cps.c > index bea6a13ea464..92575222713b 100644 > --- a/arch/mips/kernel/smp-cps.c > +++ b/arch/mips/kernel/smp-cps.c > @@ -29,7 +29,7 @@ static DECLARE_BITMAP(core_power, NR_CPUS); > > struct core_boot_config *mips_cps_core_bootcfg; > > -static unsigned core_vpe_count(unsigned int cluster, unsigned core) > +static unsigned __init core_vpe_count(unsigned int cluster, unsigned core) > { > return min(smp_max_threads, mips_cps_numvps(cluster, core)); > } > > --- > base-commit: 5cad8323040bb8d47e130c10ea4dcb7175c7602a > change-id: 20230615-mips-mark-core_vpe_count-as-init-600dc73e367d > > Best regards, > -- > Nathan Chancellor <nathan@kernel.org> >
On Thu, Jun 15, 2023 at 09:21:18AM -0700, Nathan Chancellor wrote: > After commit 96cb8ae28c65 ("MIPS: Rework smt cmdline parameters"), > modpost complains when building with clang: > > WARNING: modpost: vmlinux.o: section mismatch in reference: core_vpe_count (section: .text) -> smp_max_threads (section: .init.data) > > This warning occurs when core_vpe_count() is not inlined, as it appears > that a non-init function is referring to an init symbol. However, this > is not a problem in practice because core_vpe_count() is only called > from __init functions, cps_smp_setup() and cps_prepare_cpus(). > > Resolve the warning by marking core_vpe_count() as __init, as it is only > called in an init context so it can refer to init functions and symbols > and have its memory freed on boot. > > Fixes: 96cb8ae28c65 ("MIPS: Rework smt cmdline parameters") > Signed-off-by: Nathan Chancellor <nathan@kernel.org> > --- > arch/mips/kernel/smp-cps.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/mips/kernel/smp-cps.c b/arch/mips/kernel/smp-cps.c > index bea6a13ea464..92575222713b 100644 > --- a/arch/mips/kernel/smp-cps.c > +++ b/arch/mips/kernel/smp-cps.c > @@ -29,7 +29,7 @@ static DECLARE_BITMAP(core_power, NR_CPUS); > > struct core_boot_config *mips_cps_core_bootcfg; > > -static unsigned core_vpe_count(unsigned int cluster, unsigned core) > +static unsigned __init core_vpe_count(unsigned int cluster, unsigned core) > { > return min(smp_max_threads, mips_cps_numvps(cluster, core)); > } > > --- > base-commit: 5cad8323040bb8d47e130c10ea4dcb7175c7602a > change-id: 20230615-mips-mark-core_vpe_count-as-init-600dc73e367d > > Best regards, > -- > Nathan Chancellor <nathan@kernel.org> > applied to mips-next. Thomas.
diff --git a/arch/mips/kernel/smp-cps.c b/arch/mips/kernel/smp-cps.c index bea6a13ea464..92575222713b 100644 --- a/arch/mips/kernel/smp-cps.c +++ b/arch/mips/kernel/smp-cps.c @@ -29,7 +29,7 @@ static DECLARE_BITMAP(core_power, NR_CPUS); struct core_boot_config *mips_cps_core_bootcfg; -static unsigned core_vpe_count(unsigned int cluster, unsigned core) +static unsigned __init core_vpe_count(unsigned int cluster, unsigned core) { return min(smp_max_threads, mips_cps_numvps(cluster, core)); }
After commit 96cb8ae28c65 ("MIPS: Rework smt cmdline parameters"), modpost complains when building with clang: WARNING: modpost: vmlinux.o: section mismatch in reference: core_vpe_count (section: .text) -> smp_max_threads (section: .init.data) This warning occurs when core_vpe_count() is not inlined, as it appears that a non-init function is referring to an init symbol. However, this is not a problem in practice because core_vpe_count() is only called from __init functions, cps_smp_setup() and cps_prepare_cpus(). Resolve the warning by marking core_vpe_count() as __init, as it is only called in an init context so it can refer to init functions and symbols and have its memory freed on boot. Fixes: 96cb8ae28c65 ("MIPS: Rework smt cmdline parameters") Signed-off-by: Nathan Chancellor <nathan@kernel.org> --- arch/mips/kernel/smp-cps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- base-commit: 5cad8323040bb8d47e130c10ea4dcb7175c7602a change-id: 20230615-mips-mark-core_vpe_count-as-init-600dc73e367d Best regards,