Messages in this thread | | | Date | Mon, 30 Jun 2014 12:10:38 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCH rt] Fix latency histogram after "hrtimer: Set expiry time before switch_hrtimer_base()" |
| |
On Sat, 28 Jun 2014 23:34:48 +0100 Ben Hutchings <ben@decadent.org.uk> wrote:
> In an rt-kernel with CONFIG_MISSED_TIMER_OFFSETS_HIST enabled, > __hrtimer_start_range_ns() now crashes, as new_base is not assigned > before it is used. > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > Tested-by: Carsten Emde <C.Emde@osadl.org> > Cc: stable-rt@vger.kernel.org
Thanks, I'm applying it now. Will need to go through the various tests before I push it out.
-- Steve
> --- > --- a/kernel/hrtimer.c > +++ b/kernel/hrtimer.c > @@ -1106,6 +1106,11 @@ int __hrtimer_start_range_ns(struct hrti > #endif > } > > + hrtimer_set_expires_range_ns(timer, tim, delta_ns); > + > + /* Switch the timer base, if necessary: */ > + new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED); > + > #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST > { > ktime_t now = new_base->get_time(); > @@ -1117,11 +1122,6 @@ int __hrtimer_start_range_ns(struct hrti > } > #endif > > - hrtimer_set_expires_range_ns(timer, tim, delta_ns); > - > - /* Switch the timer base, if necessary: */ > - new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED); > - > timer_stats_hrtimer_set_start_info(timer); > > leftmost = enqueue_hrtimer(timer, new_base); >
| |