mm/hugetlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
From: Marc Herbert <Marc.Herbert@linux.intel.com>
hugetlb_sysctl_init() is only invoked once by an __init function and is
merely a wrapper around another __init function so there is not reason
to keep it.
Fixes the following warning when toning down some GCC inline options:
WARNING: modpost: vmlinux: section mismatch in reference:
hugetlb_sysctl_init+0x1b (section: .text) ->
__register_sysctl_init (section: .init.text)
Signed-off-by: Marc Herbert <Marc.Herbert@linux.intel.com>
---
mm/hugetlb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 65068671e460..a2850b26aed9 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -4900,7 +4900,7 @@ static const struct ctl_table hugetlb_table[] = {
},
};
-static void hugetlb_sysctl_init(void)
+static void __init hugetlb_sysctl_init(void)
{
register_sysctl_init("vm", hugetlb_table);
}
--
2.48.1
> On Mar 19, 2025, at 14:00, marc.herbert@linux.intel.com wrote: > > From: Marc Herbert <Marc.Herbert@linux.intel.com> > > hugetlb_sysctl_init() is only invoked once by an __init function and is > merely a wrapper around another __init function so there is not reason > to keep it. > > Fixes the following warning when toning down some GCC inline options: > > WARNING: modpost: vmlinux: section mismatch in reference: > hugetlb_sysctl_init+0x1b (section: .text) -> > __register_sysctl_init (section: .init.text) > > Signed-off-by: Marc Herbert <Marc.Herbert@linux.intel.com> Reviewed-by: Muchun Song <muchun.song@linux.dev> Thanks.
On Wed, 19 Mar 2025 06:00:30 +0000 marc.herbert@linux.intel.com wrote: > From: Marc Herbert <Marc.Herbert@linux.intel.com> > > hugetlb_sysctl_init() is only invoked once by an __init function and is > merely a wrapper around another __init function so there is not reason > to keep it. > > Fixes the following warning when toning down some GCC inline options: > > WARNING: modpost: vmlinux: section mismatch in reference: > hugetlb_sysctl_init+0x1b (section: .text) -> > __register_sysctl_init (section: .init.text) > Huh. I wonder why this just started happening.
Hi Andrew, On 2025-03-19 00:22, Andrew Morton wrote: > On Wed, 19 Mar 2025 06:00:30 +0000 marc.herbert@linux.intel.com wrote: > >> hugetlb_sysctl_init() is only invoked once by an __init function and is >> merely a wrapper around another __init function so there is not reason >> to keep it. >> >> Fixes the following warning when toning down some GCC inline options: >> >> WARNING: modpost: vmlinux: section mismatch in reference: >> hugetlb_sysctl_init+0x1b (section: .text) -> >> __register_sysctl_init (section: .init.text) >> > > Huh. I wonder why this just started happening. As I just mentioned, I see this warning only because I'm playing with GCC flags. Not sure how good is that page but its name is perfect here: https://stackoverflow.com/questions/59388740/gcc-shows-different-warnings-depending-on-optimisation-level Also, https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Warning-Options.html > The effectiveness of some warnings depends on optimizations also being > enabled. For example -Wsuggest-final-types is more effective with > link-time optimization and some instances of other warnings may not be > issued at all unless optimization is enabled. While optimization in > general improves the efficacy of control and data flow sensitive > warnings, in some cases it may also cause false positives. That particular warning was very minor but simple and valid; not a false positive. It was also the only "section mismatch" warning found in my entire configuration. Marc PS: who needs expensive static analysis tools when unusual combination of compiler flags can find issues? :-D
On 3/19/25 11:30, marc.herbert@linux.intel.com wrote:
> From: Marc Herbert <Marc.Herbert@linux.intel.com>
>
> hugetlb_sysctl_init() is only invoked once by an __init function and is
> merely a wrapper around another __init function so there is not reason
> to keep it.
>
> Fixes the following warning when toning down some GCC inline options:
>
> WARNING: modpost: vmlinux: section mismatch in reference:
> hugetlb_sysctl_init+0x1b (section: .text) ->
> __register_sysctl_init (section: .init.text)
>
> Signed-off-by: Marc Herbert <Marc.Herbert@linux.intel.com>
> ---
> mm/hugetlb.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index 65068671e460..a2850b26aed9 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -4900,7 +4900,7 @@ static const struct ctl_table hugetlb_table[] = {
> },
> };
>
> -static void hugetlb_sysctl_init(void)
> +static void __init hugetlb_sysctl_init(void)
> {
> register_sysctl_init("vm", hugetlb_table);
> }
LGTM
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
© 2016 - 2025 Red Hat, Inc.