diff options
author | Darren Hart <dvhltc@us.ibm.com> | 2009-04-03 22:40:12 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-04-06 11:14:02 +0200 |
commit | 8dac456a681bd94272ff50ecb31be6b669382c2b (patch) | |
tree | 1558cac565781e503c6a793a7921b49c0ace9a22 /kernel/rtmutex_common.h | |
parent | futex: split out fixup owner logic from futex_lock_pi() (diff) | |
download | linux-8dac456a681bd94272ff50ecb31be6b669382c2b.tar.xz linux-8dac456a681bd94272ff50ecb31be6b669382c2b.zip |
rt_mutex: add proxy lock routines
This patch is a prerequisite for futex requeue_pi. It basically splits
rt_mutex_slowlock() right down the middle, just before the first call
to schedule(). It further adds helper functions which make use of the
split and provide the rt-mutex preliminaries for futex requeue_pi.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/rtmutex_common.h')
-rw-r--r-- | kernel/rtmutex_common.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/rtmutex_common.h b/kernel/rtmutex_common.h index e124bf5800ea..97a2f81866af 100644 --- a/kernel/rtmutex_common.h +++ b/kernel/rtmutex_common.h @@ -120,6 +120,14 @@ extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock, struct task_struct *proxy_owner); extern void rt_mutex_proxy_unlock(struct rt_mutex *lock, struct task_struct *proxy_owner); +extern int rt_mutex_start_proxy_lock(struct rt_mutex *lock, + struct rt_mutex_waiter *waiter, + struct task_struct *task, + int detect_deadlock); +extern int rt_mutex_finish_proxy_lock(struct rt_mutex *lock, + struct hrtimer_sleeper *to, + struct rt_mutex_waiter *waiter, + int detect_deadlock); #ifdef CONFIG_DEBUG_RT_MUTEXES # include "rtmutex-debug.h" |