2017-09-25 22:51:55

by Prasad Sodagudi

[permalink] [raw]
Subject: [PATCH] arch_topology: Fix section miss match warning due to free_raw_capacity()

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 <[email protected]>
---
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;
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


2017-09-25 23:20:22

by Viresh Kumar

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

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 <[email protected]>
> ---
> 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 <[email protected]>

--
viresh