Messages in this thread Patch in this message | | | Subject | [PATCH rt] Fix latency histogram after "hrtimer: Set expiry time before switch_hrtimer_base()" | From | Ben Hutchings <> | Date | Sat, 28 Jun 2014 23:34:48 +0100 |
| |
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 --- --- 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); [unhandled content-type:application/pgp-signature] | |