Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 57476
b: refs/heads/master
c: 1a539a8
h: refs/heads/master
v: v3
  • Loading branch information
Thomas Gleixner authored and Linus Torvalds committed Jun 9, 2007
1 parent 5165188 commit 3433a5a
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c0d1d2bf5a28f78def7b68ca1eb5ba31aafd43a1
refs/heads/master: 1a539a87280b3032fd12bc93a4a82f1d8aa97ca8
13 changes: 13 additions & 0 deletions trunk/kernel/rtmutex.c
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,19 @@ int rt_mutex_adjust_prio_chain(struct task_struct *task,
if (!waiter || !waiter->task)
goto out_unlock_pi;

/*
* Check the orig_waiter state. After we dropped the locks,
* the previous owner of the lock might have released the lock
* and made us the pending owner:
*/
if (orig_waiter && !orig_waiter->task)
goto out_unlock_pi;

/*
* Drop out, when the task has no waiters. Note,
* top_waiter can be NULL, when we are in the deboosting
* mode!
*/
if (top_waiter && (!task_has_pi_waiters(task) ||
top_waiter != task_top_pi_waiter(task)))
goto out_unlock_pi;
Expand Down

0 comments on commit 3433a5a

Please sign in to comment.