Re: [PATCH v1 06/10] clocksource: Remove "weak" from clocksource_default_clock() declaration

Martin Schwidefsky
2014-10-16T07:22:32Z

On Wed, 15 Oct 2014 17:30:33 -0600
Bjorn Helgaas <bhelgaas@google.com> wrote:

> [+cc Daniel, Martin, linux-s390; sorry, I botched my "stg mail" so you
> weren't included the first time. s390 could see issues from this.]
>
> On Wed, Oct 15, 2014 at 11:06 AM, Bjorn Helgaas <bhelgaas@google.com> wrote:
> > kernel/time/jiffies.c provides a default clocksource_default_clock()
> > definition explicitly marked "weak". arch/s390 provides its own definition
> > intended to override the default, but the "weak" attribute on the
> > declaration applied to the s390 definition as well, so the linker chose one
> > based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from
> > pcibios_get_phb_of_node decl")).
> >
> > Remove the "weak" attribute from the clocksource_default_clock()
> > declaration so we always prefer a non-weak definition over the weak one,
> > independent of link order.
> >
> > Fixes: f1b82746c1e9 ("clocksource: Cleanup clocksource selection")
> > Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
> > CC: Daniel Lezcano <daniel.lezcano@linaro.org>
> > CC: Martin Schwidefsky <schwidefsky@de.ibm.com>
> > ---
> > include/linux/clocksource.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h
> > index 653f0e2b6ca9..abcafaa20b86 100644
> > --- a/include/linux/clocksource.h
> > +++ b/include/linux/clocksource.h
> > @@ -287,7 +287,7 @@ extern struct clocksource* clocksource_get_next(void);
> > extern void clocksource_change_rating(struct clocksource *cs, int rating);
> > extern void clocksource_suspend(void);
> > extern void clocksource_resume(void);
> > -extern struct clocksource * __init __weak clocksource_default_clock(void);
> > +extern struct clocksource * __init clocksource_default_clock(void);
> > extern void clocksource_mark_unstable(struct clocksource *cs);
> >
> > extern u64
> >

s390 compiles and boots without the __weak for clocksource_default_clock.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.