On Fri, 7 Feb 2014, Preeti U Murthy wrote: > The broadcast timer registration has to be done only when > GENERIC_CLOCKEVENTS_BROADCAST and TICK_ONESHOT config options are enabled. > Also fix max_delta_ticks value for the pseudo clock device. > > Reported-by: Fengguang Wu <[email protected]> > Signed-off-by: Preeti U Murthy <[email protected]> > Cc: Thomas Gleixner <[email protected]> > Cc: Ingo Molnar <[email protected]> > --- > > kernel/time/tick-broadcast-hrtimer.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/kernel/time/tick-broadcast-hrtimer.c > b/kernel/time/tick-broadcast-hrtimer.c > index 5591aaa..bc383ac 100644 > --- a/kernel/time/tick-broadcast-hrtimer.c > +++ b/kernel/time/tick-broadcast-hrtimer.c > @@ -81,7 +81,7 @@ static struct clock_event_device ce_broadcast_hrtimer = { > .min_delta_ns = 1, > .max_delta_ns = KTIME_MAX, > .min_delta_ticks = 1, > - .max_delta_ticks = KTIME_MAX, > + .max_delta_ticks = ULONG_MAX, > .mult = 1, > .shift = 0, > .cpumask = cpu_all_mask, > @@ -102,9 +102,11 @@ static enum hrtimer_restart bc_handler(struct hrtimer *t) > return HRTIMER_RESTART; > } > > +#if defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST) && > defined(CONFIG_TICK_ONESHOT) > void tick_setup_hrtimer_broadcast(void) > { > hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); > bctimer.function = bc_handler; > clockevents_register_device(&ce_broadcast_hrtimer); > } > +#endif
I see a build error in timers/core today: kernel/time/tick-broadcast-hrtimer.c:101:6: error: redefinition of 'tick_setup_hrtimer_broadcast' include/linux/clockchips.h:194:20: note: previous definition of 'tick_setup_hrtimer_broadcast' was here and I assume this is the intended fix for that, although it isn't mentioned in the changelog. After it's applied, this is left over: kernel/time/tick-broadcast-hrtimer.c:91:29: warning: ‘bc_handler’ defined but not used [-Wunused-function]

