Re: [PATCH] arch_topology: Fix section miss match warning due to free_raw_capacity()

From: Viresh Kumar
Date: Mon Sep 25 2017 - 19:20:25 EST


On 25-09-17, 15:51, Prasad Sodagudi wrote:
> Remove the __init annotation from free_raw_capacity() to avoid
> the following warning.
>
> The function init_cpu_capacity_callback() references the
> function __init free_raw_capacity().
> WARNING: vmlinux.o(.text+0x425cc0): Section mismatch in reference
> from the function init_cpu_capacity_callback() to the function
> .init.text:free_raw_capacity().
>
> Signed-off-by: Prasad Sodagudi <psodagud@xxxxxxxxxxxxxx>
> ---
> drivers/base/arch_topology.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
> index 41be9ff..3da53cc 100644
> --- a/drivers/base/arch_topology.c
> +++ b/drivers/base/arch_topology.c
> @@ -96,7 +96,7 @@ static int register_cpu_capacity_sysctl(void)
> static u32 capacity_scale;
> static u32 *raw_capacity;
>
> -static int __init free_raw_capacity(void)
> +static int free_raw_capacity(void)
> {
> kfree(raw_capacity);
> raw_capacity = NULL;

So we need the __init thing only when cpufreq support isn't there in the kernel
and I am not sure if we want to add more ifdef hackery in the declaration of
free_raw_capacity().

Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>

--
viresh