diff options
Diffstat (limited to 'kernel/locking/rtmutex.c')
| -rw-r--r-- | kernel/locking/rtmutex.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index 010cf4e6d0b8..728f434de2bb 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -901,8 +901,9 @@ static int __sched rt_mutex_adjust_prio_chain(struct task_struct *task,  		 * then we need to wake the new top waiter up to try  		 * to get the lock.  		 */ -		if (prerequeue_top_waiter != rt_mutex_top_waiter(lock)) -			wake_up_state(waiter->task, waiter->wake_state); +		top_waiter = rt_mutex_top_waiter(lock); +		if (prerequeue_top_waiter != top_waiter) +			wake_up_state(top_waiter->task, top_waiter->wake_state);  		raw_spin_unlock_irq(&lock->wait_lock);  		return 0;  	}  |