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

Martin Schwidefsky
2014-10-16T13:45:22Z

On Thu, 16 Oct 2014 07:40:16 -0600
Bjorn Helgaas <bhelgaas@google.com> wrote:

> On Thu, Oct 16, 2014 at 1:22 AM, Martin Schwidefsky
> <schwidefsky@de.ibm.com> wrote:
> > 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.
>
> I assume this means you've tested this patch and s390 compiles and boots?

Correct.

> I assume you *don't* mean that s390 could drop its
> clocksource_default_clock() implementation and use the generic one,
> right?

Sorry, but I want to keep the s390 TOD clock as default.
The jiffies clock is not precise enough, even if it is used only at the beginning.

--
blue skies,
Martin.

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