diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2006-06-27 05:55:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-27 20:32:48 -0400 |
commit | 95e02ca9bb5324360e7dea1ea1c563036d84a5e6 (patch) | |
tree | 0336dd808abe113b42f53a8f700d50ea6ba674ff /include/linux | |
parent | 0bafd214e4ba55dc1fb81a3031d0249292f1bc05 (diff) |
[PATCH] rtmutex: Propagate priority settings into PI lock chains
When the priority of a task, which is blocked on a lock, changes we must
propagate this change into the PI lock chain. Therefor the chain walk code
is changed to get rid of the references to current to avoid false positives
in the deadlock detector, as setscheduler might be called by a task which
holds the lock on which the task whose priority is changed is blocked.
Also add some comments about the get/put_task_struct usage to avoid
confusion.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/sched.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index b4e6be7de5ad..821f0481ebe1 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1044,11 +1044,13 @@ extern void sched_idle_next(void); | |||
1044 | #ifdef CONFIG_RT_MUTEXES | 1044 | #ifdef CONFIG_RT_MUTEXES |
1045 | extern int rt_mutex_getprio(task_t *p); | 1045 | extern int rt_mutex_getprio(task_t *p); |
1046 | extern void rt_mutex_setprio(task_t *p, int prio); | 1046 | extern void rt_mutex_setprio(task_t *p, int prio); |
1047 | extern void rt_mutex_adjust_pi(task_t *p); | ||
1047 | #else | 1048 | #else |
1048 | static inline int rt_mutex_getprio(task_t *p) | 1049 | static inline int rt_mutex_getprio(task_t *p) |
1049 | { | 1050 | { |
1050 | return p->normal_prio; | 1051 | return p->normal_prio; |
1051 | } | 1052 | } |
1053 | # define rt_mutex_adjust_pi(p) do { } while (0) | ||
1052 | #endif | 1054 | #endif |
1053 | 1055 | ||
1054 | extern void set_user_nice(task_t *p, long nice); | 1056 | extern void set_user_nice(task_t *p, long nice); |