diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-12-05 23:20:17 +0000 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-12-05 23:20:17 +0000 |
| commit | 742eaa6a6e356a16788ce6530271de89bc4f8fb5 (patch) | |
| tree | 12fc040daab06ac796c61c1d92bfad9bb054d1c1 /kernel/hrtimer.c | |
| parent | ba8bb18a03f8c7508565c385576a5431a4ad804a (diff) | |
| parent | ae72fd588a2b302222769b44775912b83f0785eb (diff) | |
| download | cachepc-linux-742eaa6a6e356a16788ce6530271de89bc4f8fb5.tar.gz cachepc-linux-742eaa6a6e356a16788ce6530271de89bc4f8fb5.zip | |
Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable
Conflicts:
arch/arm/common/gic.c
arch/arm/plat-omap/include/plat/common.h
Diffstat (limited to 'kernel/hrtimer.c')
| -rw-r--r-- | kernel/hrtimer.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 422e567eecf6..ae34bf51682b 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -885,10 +885,13 @@ static void __remove_hrtimer(struct hrtimer *timer, struct hrtimer_clock_base *base, unsigned long newstate, int reprogram) { + struct timerqueue_node *next_timer; if (!(timer->state & HRTIMER_STATE_ENQUEUED)) goto out; - if (&timer->node == timerqueue_getnext(&base->active)) { + next_timer = timerqueue_getnext(&base->active); + timerqueue_del(&base->active, &timer->node); + if (&timer->node == next_timer) { #ifdef CONFIG_HIGH_RES_TIMERS /* Reprogram the clock event device. if enabled */ if (reprogram && hrtimer_hres_active()) { @@ -901,7 +904,6 @@ static void __remove_hrtimer(struct hrtimer *timer, } #endif } - timerqueue_del(&base->active, &timer->node); if (!timerqueue_getnext(&base->active)) base->cpu_base->active_bases &= ~(1 << base->index); out: |
