diff mbox

[3/3] clocksource: pxa: Fix section mismatch

Message ID 1424860276-18334-3-git-send-email-daniel.lezcano@linaro.org
State Superseded
Headers show

Commit Message

Daniel Lezcano Feb. 25, 2015, 10:31 a.m. UTC
From: Robert Jarzmik <robert.jarzmik@free.fr>

As pxa_timer_common_init() is only called in init context, mark it as
such, and quiesce the compiler warnings :
WARNING: vmlinux.o(.text.unlikely+0x45d4): Section mismatch in reference
from the function pxa_timer_common_init() to the function
.init.text:sched_clock_register()

WARNING: vmlinux.o(.text.unlikely+0x4610): Section mismatch in reference
from the function pxa_timer_common_init() to the function
.init.text:clocksource_mmio_init()

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 drivers/clocksource/pxa_timer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel Lezcano Feb. 25, 2015, 10:45 a.m. UTC | #1
On 02/25/2015 11:35 AM, Ingo Molnar wrote:
>
> * Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
>
>> From: Robert Jarzmik <robert.jarzmik@free.fr>
>>
>> As pxa_timer_common_init() is only called in init context, mark it as
>> such, and quiesce the compiler warnings :
>> WARNING: vmlinux.o(.text.unlikely+0x45d4): Section mismatch in reference
>> from the function pxa_timer_common_init() to the function
>> .init.text:sched_clock_register()
>>
>> WARNING: vmlinux.o(.text.unlikely+0x4610): Section mismatch in reference
>> from the function pxa_timer_common_init() to the function
>> .init.text:clocksource_mmio_init()
>>
>> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>> ---
>>   drivers/clocksource/pxa_timer.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/clocksource/pxa_timer.c b/drivers/clocksource/pxa_timer.c
>> index 941f3f3..d9438af 100644
>> --- a/drivers/clocksource/pxa_timer.c
>> +++ b/drivers/clocksource/pxa_timer.c
>> @@ -163,7 +163,7 @@ static struct irqaction pxa_ost0_irq = {
>>   	.dev_id		= &ckevt_pxa_osmr0,
>>   };
>>
>> -static void pxa_timer_common_init(int irq, unsigned long clock_tick_rate)
>> +static void __init pxa_timer_common_init(int irq, unsigned long clock_tick_rate)
>>   {
>>   	timer_writel(0, OIER);
>>   	timer_writel(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);
>
> So this is then used indirectly by:
>
> CLOCKSOURCE_OF_DECLARE(pxa_timer, "marvell,pxa-timer", pxa_timer_dt_init);
>
> which should probably be marked __initdata?


Sorry, I miss the point. What should be marked __initdata ?
Daniel Lezcano Feb. 25, 2015, 10:56 a.m. UTC | #2
On 02/25/2015 11:48 AM, Ingo Molnar wrote:
>
> * Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
>
>> On 02/25/2015 11:35 AM, Ingo Molnar wrote:
>>>
>>> * Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
>>>
>>>> From: Robert Jarzmik <robert.jarzmik@free.fr>
>>>>
>>>> As pxa_timer_common_init() is only called in init context, mark it as
>>>> such, and quiesce the compiler warnings :
>>>> WARNING: vmlinux.o(.text.unlikely+0x45d4): Section mismatch in reference
>>> >from the function pxa_timer_common_init() to the function
>>>> .init.text:sched_clock_register()
>>>>
>>>> WARNING: vmlinux.o(.text.unlikely+0x4610): Section mismatch in reference
>>> >from the function pxa_timer_common_init() to the function
>>>> .init.text:clocksource_mmio_init()
>>>>
>>>> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
>>>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>>>> ---
>>>>   drivers/clocksource/pxa_timer.c | 2 +-
>>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/clocksource/pxa_timer.c b/drivers/clocksource/pxa_timer.c
>>>> index 941f3f3..d9438af 100644
>>>> --- a/drivers/clocksource/pxa_timer.c
>>>> +++ b/drivers/clocksource/pxa_timer.c
>>>> @@ -163,7 +163,7 @@ static struct irqaction pxa_ost0_irq = {
>>>>   	.dev_id		= &ckevt_pxa_osmr0,
>>>>   };
>>>>
>>>> -static void pxa_timer_common_init(int irq, unsigned long clock_tick_rate)
>>>> +static void __init pxa_timer_common_init(int irq, unsigned long clock_tick_rate)
>>>>   {
>>>>   	timer_writel(0, OIER);
>>>>   	timer_writel(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);
>>>
>>> So this is then used indirectly by:
>>>
>>> CLOCKSOURCE_OF_DECLARE(pxa_timer, "marvell,pxa-timer", pxa_timer_dt_init);
>>>
>>> which should probably be marked __initdata?
>>
>>
>> Sorry, I miss the point. What should be marked __initdata ?
>
> so CLOCKSOURCE_OF_DECLARE() defines 'struct of_device_id'
> entries, right? Those, if they are only used during
> initialization, should be marked __initdata.
>
> Or are they mixed use?

Ah, ok. Thanks for the clarification. I thought there was an issue with 
the patch and I was hanging the PR.

Let me look in details.
diff mbox

Patch

diff --git a/drivers/clocksource/pxa_timer.c b/drivers/clocksource/pxa_timer.c
index 941f3f3..d9438af 100644
--- a/drivers/clocksource/pxa_timer.c
+++ b/drivers/clocksource/pxa_timer.c
@@ -163,7 +163,7 @@  static struct irqaction pxa_ost0_irq = {
 	.dev_id		= &ckevt_pxa_osmr0,
 };
 
-static void pxa_timer_common_init(int irq, unsigned long clock_tick_rate)
+static void __init pxa_timer_common_init(int irq, unsigned long clock_tick_rate)
 {
 	timer_writel(0, OIER);
 	timer_writel(OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3, OSSR);