aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/locking/mutex.c
diff options
context:
space:
mode:
authorDavidlohr Bueso <dave@stgolabs.net>2015-01-19 20:39:21 -0500
committerIngo Molnar <mingo@kernel.org>2015-02-04 01:57:33 -0500
commit51587bcf31d070119d37de6103543c807f5ccdb3 (patch)
treef4d0686f20ce90cad1a57aea2f752097e4263595 /kernel/locking/mutex.c
parent2622e849a1d3d3ef531d1cc33308bb7fd00eee40 (diff)
locking/mutex: Explicitly mark task as running after wakeup
By the time we wake up and get the lock after being asleep in the slowpath, we better be running. As good practice, be explicit about this and avoid any mischief. Signed-off-by: Davidlohr Bueso <dbueso@suse.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/1421717961.4903.11.camel@stgolabs.net Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/locking/mutex.c')
-rw-r--r--kernel/locking/mutex.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
index c67a60b61625..57407062e209 100644
--- a/kernel/locking/mutex.c
+++ b/kernel/locking/mutex.c
@@ -587,6 +587,8 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
587 schedule_preempt_disabled(); 587 schedule_preempt_disabled();
588 spin_lock_mutex(&lock->wait_lock, flags); 588 spin_lock_mutex(&lock->wait_lock, flags);
589 } 589 }
590 __set_task_state(task, TASK_RUNNING);
591
590 mutex_remove_waiter(lock, &waiter, current_thread_info()); 592 mutex_remove_waiter(lock, &waiter, current_thread_info());
591 /* set it to 0 if there are no waiters left: */ 593 /* set it to 0 if there are no waiters left: */
592 if (likely(list_empty(&lock->wait_list))) 594 if (likely(list_empty(&lock->wait_list)))