Message ID | 1424860276-18334-3-git-send-email-daniel.lezcano@linaro.org |
---|---|
State | Superseded |
Headers | show |
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 ?
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 --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);