hrtimer: make sure PINNED flag is cleared after removing hrtimer

Change-Id: I1a3211bc0d5d310c7fa7b92dc44ec6c4722dd7b9
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
[forward port to 3.18]
Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org>
Git-commit: d6c894e515b4cd93c3a08e7c60cce0aa5118c656
Git-repo: git://git.linaro.org/people/mike.holmes/santosh.shukla/lng-isol.git
Signed-off-by: Olav Haugan <ohaugan@codeaurora.org>
Signed-off-by: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
This commit is contained in:
Viresh Kumar 2015-03-25 12:57:46 +05:30 committed by Satya Durga Srinivasu Prabhala
parent a13bd9b940
commit 55efbbcc5f

View File

@ -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);
}