aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2006-06-27 05:54:55 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-27 20:32:47 -0400
commite7eebaf6a81b956c989f184ee4b27277c88f8afe (patch)
tree25adcfb17ec5f857791557a874cc1cced390ca9f /include/linux
parenta6537be9324c67b41f6d98f5a60a1bd5a8e02861 (diff)
[PATCH] pi-futex: rt mutex debug
Runtime debugging functionality for rt-mutexes. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> 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/mm.h1
-rw-r--r--include/linux/rtmutex.h15
2 files changed, 15 insertions, 1 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0ac255720f34..c41a1299b8cf 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1034,6 +1034,7 @@ static inline void
1034debug_check_no_locks_freed(const void *from, unsigned long len) 1034debug_check_no_locks_freed(const void *from, unsigned long len)
1035{ 1035{
1036 mutex_debug_check_no_locks_freed(from, len); 1036 mutex_debug_check_no_locks_freed(from, len);
1037 rt_mutex_debug_check_no_locks_freed(from, len);
1037} 1038}
1038 1039
1039#ifndef CONFIG_DEBUG_PAGEALLOC 1040#ifndef CONFIG_DEBUG_PAGEALLOC
diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h
index 12309c916c68..fa4a3b82ba70 100644
--- a/include/linux/rtmutex.h
+++ b/include/linux/rtmutex.h
@@ -41,6 +41,19 @@ struct rt_mutex_waiter;
41struct hrtimer_sleeper; 41struct hrtimer_sleeper;
42 42
43#ifdef CONFIG_DEBUG_RT_MUTEXES 43#ifdef CONFIG_DEBUG_RT_MUTEXES
44 extern int rt_mutex_debug_check_no_locks_freed(const void *from,
45 unsigned long len);
46 extern void rt_mutex_debug_check_no_locks_held(struct task_struct *task);
47#else
48 static inline int rt_mutex_debug_check_no_locks_freed(const void *from,
49 unsigned long len)
50 {
51 return 0;
52 }
53# define rt_mutex_debug_check_no_locks_held(task) do { } while (0)
54#endif
55
56#ifdef CONFIG_DEBUG_RT_MUTEXES
44# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \ 57# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \
45 , .name = #mutexname, .file = __FILE__, .line = __LINE__ 58 , .name = #mutexname, .file = __FILE__, .line = __LINE__
46# define rt_mutex_init(mutex) __rt_mutex_init(mutex, __FUNCTION__) 59# define rt_mutex_init(mutex) __rt_mutex_init(mutex, __FUNCTION__)
@@ -48,7 +61,7 @@ struct hrtimer_sleeper;
48#else 61#else
49# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) 62# define __DEBUG_RT_MUTEX_INITIALIZER(mutexname)
50# define rt_mutex_init(mutex) __rt_mutex_init(mutex, NULL) 63# define rt_mutex_init(mutex) __rt_mutex_init(mutex, NULL)
51# define rt_mutex_debug_task_free(t) do { } while (0) 64# define rt_mutex_debug_task_free(t) do { } while (0)
52#endif 65#endif
53 66
54#define __RT_MUTEX_INITIALIZER(mutexname) \ 67#define __RT_MUTEX_INITIALIZER(mutexname) \