aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2014-09-05 09:36:59 +0530
committerGary S. Robertson <gary.robertson@linaro.org>2014-09-10 15:26:06 -0500
commitc79fdd5cf1c4c6239ddaf998c3bfc5b4839e04e5 (patch)
treeb8e370e223c8b795dc84a10d8ec469b2b7dc9dea
parentfaee6059dde0e11fe6386cfda14dfb84c245b70d (diff)
hrtimer: make sure PINNED flag is cleared after removing hrtimer
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-rw-r--r--kernel/hrtimer.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index e3cd58bc7513..42983aa15337 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -975,6 +975,7 @@ remove_hrtimer(struct hrtimer *timer, struct hrtimer_clock_base *base)
*/
state = timer->state & HRTIMER_STATE_CALLBACK;
__remove_hrtimer(timer, base, state, reprogram);
+ timer->state &= ~HRTIMER_STATE_PINNED;
return 1;
}
return 0;
@@ -1015,8 +1016,7 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
timer_stats_hrtimer_set_start_info(timer);
/* Update pinned state */
- timer->state &= ~HRTIMER_STATE_PINNED;
- timer->state |= !!(mode & HRTIMER_MODE_PINNED) << HRTIMER_PINNED_SHIFT;
+ timer->state |= (!!(mode & HRTIMER_MODE_PINNED)) << HRTIMER_PINNED_SHIFT;
leftmost = enqueue_hrtimer(timer, new_base);