2018-12-29 19:59:09

by Stefan Agner

[permalink] [raw]
Subject: [PATCH] irqchip/gic-v3: use __init where appropriate

Compiling with section mismatch debugging enabled prints the
following warning:
WARNING: vmlinux.o(.text+0xffa1b8): Section mismatch in reference from
the function gic_smp_init() to the function .init.text:set_smp_cross_call()

Avoid this warning by adding __init to gic_smp_init(). While add it,
also add it where appropriate.

Signed-off-by: Stefan Agner <[email protected]>
---
drivers/irqchip/irq-gic-v3.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 0868a9d81c3c..3b33c94041e5 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -768,7 +768,7 @@ static void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
isb();
}

-static void gic_smp_init(void)
+static void __init gic_smp_init(void)
{
set_smp_cross_call(gic_raise_softirq);
cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_GIC_STARTING,
@@ -848,7 +848,7 @@ static struct notifier_block gic_cpu_pm_notifier_block = {
.notifier_call = gic_cpu_pm_notifier,
};

-static void gic_cpu_pm_init(void)
+static void __init gic_cpu_pm_init(void)
{
cpu_pm_register_notifier(&gic_cpu_pm_notifier_block);
}
--
2.20.1



2019-01-03 14:44:34

by Marc Zyngier

[permalink] [raw]
Subject: Re: [PATCH] irqchip/gic-v3: use __init where appropriate

Hi Stephan,

On 29/12/2018 14:14, Stefan Agner wrote:
> Compiling with section mismatch debugging enabled prints the
> following warning:
> WARNING: vmlinux.o(.text+0xffa1b8): Section mismatch in reference from
> the function gic_smp_init() to the function .init.text:set_smp_cross_call()
>
> Avoid this warning by adding __init to gic_smp_init(). While add it,
> also add it where appropriate.
>
> Signed-off-by: Stefan Agner <[email protected]>
> ---
> drivers/irqchip/irq-gic-v3.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
> index 0868a9d81c3c..3b33c94041e5 100644
> --- a/drivers/irqchip/irq-gic-v3.c
> +++ b/drivers/irqchip/irq-gic-v3.c
> @@ -768,7 +768,7 @@ static void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
> isb();
> }
>
> -static void gic_smp_init(void)
> +static void __init gic_smp_init(void)
> {
> set_smp_cross_call(gic_raise_softirq);
> cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_GIC_STARTING,
> @@ -848,7 +848,7 @@ static struct notifier_block gic_cpu_pm_notifier_block = {
> .notifier_call = gic_cpu_pm_notifier,
> };
>
> -static void gic_cpu_pm_init(void)
> +static void __init gic_cpu_pm_init(void)
> {
> cpu_pm_register_notifier(&gic_cpu_pm_notifier_block);
> }
>

Interesting. I don't see this warning at all. How do you trigger this?

Thanks,

M.
--
Jazz is not dead. It just smells funny...

2019-01-03 17:00:53

by Stefan Agner

[permalink] [raw]
Subject: Re: [PATCH] irqchip/gic-v3: use __init where appropriate

On 03.01.2019 12:08, Marc Zyngier wrote:
> Hi Stephan,
>
> On 29/12/2018 14:14, Stefan Agner wrote:
>> Compiling with section mismatch debugging enabled prints the
>> following warning:
>> WARNING: vmlinux.o(.text+0xffa1b8): Section mismatch in reference from
>> the function gic_smp_init() to the function .init.text:set_smp_cross_call()
>>
>> Avoid this warning by adding __init to gic_smp_init(). While add it,
>> also add it where appropriate.
>>
>> Signed-off-by: Stefan Agner <[email protected]>
>> ---
>> drivers/irqchip/irq-gic-v3.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
>> index 0868a9d81c3c..3b33c94041e5 100644
>> --- a/drivers/irqchip/irq-gic-v3.c
>> +++ b/drivers/irqchip/irq-gic-v3.c
>> @@ -768,7 +768,7 @@ static void gic_raise_softirq(const struct cpumask *mask, unsigned int irq)
>> isb();
>> }
>>
>> -static void gic_smp_init(void)
>> +static void __init gic_smp_init(void)
>> {
>> set_smp_cross_call(gic_raise_softirq);
>> cpuhp_setup_state_nocalls(CPUHP_AP_IRQ_GIC_STARTING,
>> @@ -848,7 +848,7 @@ static struct notifier_block gic_cpu_pm_notifier_block = {
>> .notifier_call = gic_cpu_pm_notifier,
>> };
>>
>> -static void gic_cpu_pm_init(void)
>> +static void __init gic_cpu_pm_init(void)
>> {
>> cpu_pm_register_notifier(&gic_cpu_pm_notifier_block);
>> }
>>
>
> Interesting. I don't see this warning at all. How do you trigger this?

I noticed that it suddenly disappeared again too. I used some crazy
configurations while doing tests with LLVM/Clang, I think it was with
allyesconfig.

--
Stefan

>
> Thanks,
>
> M.