Blame view
include/linux/debug_locks.h
1.62 KB
9a11b49a8
|
1 2 |
#ifndef __LINUX_DEBUG_LOCKING_H #define __LINUX_DEBUG_LOCKING_H |
ca31e146d
|
3 |
#include <linux/kernel.h> |
9eeba6138
|
4 |
#include <asm/atomic.h> |
27b19565f
|
5 |
#include <asm/system.h> |
ca31e146d
|
6 |
|
9b7f750d4
|
7 |
struct task_struct; |
9a11b49a8
|
8 9 |
extern int debug_locks; extern int debug_locks_silent; |
9eeba6138
|
10 11 12 13 14 |
static inline int __debug_locks_off(void) { return xchg(&debug_locks, 0); } |
9a11b49a8
|
15 16 17 18 |
/* * Generic 'turn off all lock debugging' function: */ extern int debug_locks_off(void); |
9a11b49a8
|
19 20 21 22 |
#define DEBUG_LOCKS_WARN_ON(c) \ ({ \ int __ret = 0; \ \ |
53b9d87f4
|
23 |
if (!oops_in_progress && unlikely(c)) { \ |
9127d4b1d
|
24 |
if (debug_locks_off() && !debug_locks_silent) \ |
9a11b49a8
|
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
|
42 |
struct task_struct; |
9a11b49a8
|
43 44 |
#ifdef CONFIG_LOCKDEP extern void debug_show_all_locks(void); |
82a1fcb90
|
45 |
extern void __debug_show_held_locks(struct task_struct *task); |
9a11b49a8
|
46 47 48 49 50 51 52 |
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) { } |
82a1fcb90
|
53 54 55 |
static inline void __debug_show_held_locks(struct task_struct *task) { } |
9a11b49a8
|
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
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 |