From 55efbbcc5fa1b2fe19e882657f233fd3645ae2d5 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Wed, 25 Mar 2015 12:57:46 +0530 Subject: [PATCH] hrtimer: make sure PINNED flag is cleared after removing hrtimer Change-Id: I1a3211bc0d5d310c7fa7b92dc44ec6c4722dd7b9 Signed-off-by: Viresh Kumar [forward port to 3.18] Signed-off-by: Santosh Shukla Git-commit: d6c894e515b4cd93c3a08e7c60cce0aa5118c656 Git-repo: git://git.linaro.org/people/mike.holmes/santosh.shukla/lng-isol.git Signed-off-by: Olav Haugan Signed-off-by: Satya Durga Srinivasu Prabhala --- kernel/time/hrtimer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c index df8cdd458302..66885f6f8d4b 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c @@ -1037,6 +1037,7 @@ remove_hrtimer(struct hrtimer *timer, struct hrtimer_clock_base *base, bool rest state = HRTIMER_STATE_INACTIVE; __remove_hrtimer(timer, base, state, reprogram); + timer->state &= ~HRTIMER_STATE_PINNED; return 1; } return 0; @@ -1104,7 +1105,7 @@ static int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, /* 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; return enqueue_hrtimer(timer, new_base, mode); }