Blame view
include/linux/debug_locks.h
1.49 KB
9a11b49a8 [PATCH] lockdep: ... |
1 2 |
#ifndef __LINUX_DEBUG_LOCKING_H #define __LINUX_DEBUG_LOCKING_H |
ca31e146d Move _RET_IP_ and... |
3 |
#include <linux/kernel.h> |
60063497a atomic: use <linu... |
4 |
#include <linux/atomic.h> |
27b19565f lockdep: warn abo... |
5 |
#include <asm/system.h> |
ca31e146d Move _RET_IP_ and... |
6 |
|
9b7f750d4 [PATCH] debug_loc... |
7 |
struct task_struct; |
9a11b49a8 [PATCH] lockdep: ... |
8 9 |
extern int debug_locks; extern int debug_locks_silent; |
9eeba6138 lockdep: warn abo... |
10 11 12 13 14 |
static inline int __debug_locks_off(void) { return xchg(&debug_locks, 0); } |
9a11b49a8 [PATCH] lockdep: ... |
15 16 17 18 |
/* * Generic 'turn off all lock debugging' function: */ extern int debug_locks_off(void); |
9a11b49a8 [PATCH] lockdep: ... |
19 20 21 22 |
#define DEBUG_LOCKS_WARN_ON(c) \ ({ \ int __ret = 0; \ \ |
53b9d87f4 lock debug: sit t... |
23 |
if (!oops_in_progress && unlikely(c)) { \ |
9127d4b1d [PATCH] lock debu... |
24 |
if (debug_locks_off() && !debug_locks_silent) \ |
9a11b49a8 [PATCH] lockdep: ... |
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
WARN_ON(1); \ __ret = 1; \ } \ __ret; \ }) #ifdef CONFIG_SMP # define SMP_DEBUG_LOCKS_WARN_ON(c) DEBUG_LOCKS_WARN_ON(c) #else # define SMP_DEBUG_LOCKS_WARN_ON(c) do { } while (0) #endif #ifdef CONFIG_DEBUG_LOCKING_API_SELFTESTS extern void locking_selftest(void); #else # define locking_selftest() do { } while (0) #endif |
f86e45131 [PATCH] Need forw... |
42 |
struct task_struct; |
9a11b49a8 [PATCH] lockdep: ... |
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
#ifdef CONFIG_LOCKDEP extern void debug_show_all_locks(void); extern void debug_show_held_locks(struct task_struct *task); extern void debug_check_no_locks_freed(const void *from, unsigned long len); extern void debug_check_no_locks_held(struct task_struct *task); #else static inline void debug_show_all_locks(void) { } static inline void debug_show_held_locks(struct task_struct *task) { } static inline void debug_check_no_locks_freed(const void *from, unsigned long len) { } static inline void debug_check_no_locks_held(struct task_struct *task) { } #endif #endif |