diff options
| author | Takashi Iwai <tiwai@suse.de> | 2012-01-31 15:13:14 +0100 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2012-01-31 15:13:14 +0100 | 
| commit | ea51e5040e24eefe44d70bc654a237ca1f0225b0 (patch) | |
| tree | df2e5922dcdfafae62a10d8cd97f98121064fc23 /kernel/hrtimer.c | |
| parent | 3422a47041b8cb8f14ac1e3926bcf711121df6dc (diff) | |
| parent | 8dbd52daee38adaae4d5a674bcca837e694a4f4c (diff) | |
Merge branch 'fix/asoc' into for-linus
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: | 
