diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/smp_lock.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/include/linux/smp_lock.h b/include/linux/smp_lock.h index 813be59bf345..d48cc77ba70d 100644 --- a/include/linux/smp_lock.h +++ b/include/linux/smp_lock.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #ifdef CONFIG_LOCK_KERNEL | 4 | #ifdef CONFIG_LOCK_KERNEL |
5 | #include <linux/sched.h> | 5 | #include <linux/sched.h> |
6 | #include <trace/events/bkl.h> | ||
6 | 7 | ||
7 | #define kernel_locked() (current->lock_depth >= 0) | 8 | #define kernel_locked() (current->lock_depth >= 0) |
8 | 9 | ||
@@ -24,8 +25,18 @@ static inline int reacquire_kernel_lock(struct task_struct *task) | |||
24 | return 0; | 25 | return 0; |
25 | } | 26 | } |
26 | 27 | ||
27 | extern void __lockfunc lock_kernel(void) __acquires(kernel_lock); | 28 | extern void __lockfunc _lock_kernel(void) __acquires(kernel_lock); |
28 | extern void __lockfunc unlock_kernel(void) __releases(kernel_lock); | 29 | extern void __lockfunc _unlock_kernel(void) __releases(kernel_lock); |
30 | |||
31 | #define lock_kernel() { \ | ||
32 | trace_lock_kernel(__func__, __FILE__, __LINE__); \ | ||
33 | _lock_kernel(); \ | ||
34 | } | ||
35 | |||
36 | #define unlock_kernel() { \ | ||
37 | trace_unlock_kernel(__func__, __FILE__, __LINE__); \ | ||
38 | _unlock_kernel(); \ | ||
39 | } | ||
29 | 40 | ||
30 | /* | 41 | /* |
31 | * Various legacy drivers don't really need the BKL in a specific | 42 | * Various legacy drivers don't really need the BKL in a specific |
@@ -41,8 +52,8 @@ static inline void cycle_kernel_lock(void) | |||
41 | 52 | ||
42 | #else | 53 | #else |
43 | 54 | ||
44 | #define lock_kernel() do { } while(0) | 55 | #define lock_kernel() trace_lock_kernel(__func__, __FILE__, __LINE__); |
45 | #define unlock_kernel() do { } while(0) | 56 | #define unlock_kernel() trace_unlock_kernel(__func__, __FILE__, __LINE__); |
46 | #define release_kernel_lock(task) do { } while(0) | 57 | #define release_kernel_lock(task) do { } while(0) |
47 | #define cycle_kernel_lock() do { } while(0) | 58 | #define cycle_kernel_lock() do { } while(0) |
48 | #define reacquire_kernel_lock(task) 0 | 59 | #define reacquire_kernel_lock(task) 0 |