hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/include/linux/local_lock_internal.h
....@@ -7,39 +7,13 @@
77 #include <linux/lockdep.h>
88
99 typedef struct {
10
-#ifdef CONFIG_PREEMPT_RT
11
- spinlock_t lock;
12
- struct task_struct *owner;
13
- int nestcnt;
14
-
15
-#elif defined(CONFIG_DEBUG_LOCK_ALLOC)
10
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
1611 struct lockdep_map dep_map;
1712 struct task_struct *owner;
1813 #endif
1914 } local_lock_t;
2015
21
-#ifdef CONFIG_PREEMPT_RT
22
-
23
-#define INIT_LOCAL_LOCK(lockname) { \
24
- __SPIN_LOCK_UNLOCKED((lockname).lock), \
25
- .owner = NULL, \
26
- .nestcnt = 0, \
27
- }
28
-
29
-static inline void ___local_lock_init(local_lock_t *l)
30
-{
31
- l->owner = NULL;
32
- l->nestcnt = 0;
33
-}
34
-
35
-#define __local_lock_init(l) \
36
-do { \
37
- spin_lock_init(&(l)->lock); \
38
- ___local_lock_init(l); \
39
-} while (0)
40
-
41
-#elif defined(CONFIG_DEBUG_LOCK_ALLOC)
42
-
16
+#ifdef CONFIG_DEBUG_LOCK_ALLOC
4317 # define LOCAL_LOCK_DEBUG_INIT(lockname) \
4418 .dep_map = { \
4519 .name = #lockname, \
....@@ -47,33 +21,7 @@
4721 .lock_type = LD_LOCK_PERCPU, \
4822 }, \
4923 .owner = NULL,
50
-#endif
5124
52
-#ifdef CONFIG_PREEMPT_RT
53
-
54
-static inline void local_lock_acquire(local_lock_t *l)
55
-{
56
- if (l->owner != current) {
57
- spin_lock(&l->lock);
58
- DEBUG_LOCKS_WARN_ON(l->owner);
59
- DEBUG_LOCKS_WARN_ON(l->nestcnt);
60
- l->owner = current;
61
- }
62
- l->nestcnt++;
63
-}
64
-
65
-static inline void local_lock_release(local_lock_t *l)
66
-{
67
- DEBUG_LOCKS_WARN_ON(l->nestcnt == 0);
68
- DEBUG_LOCKS_WARN_ON(l->owner != current);
69
- if (--l->nestcnt)
70
- return;
71
-
72
- l->owner = NULL;
73
- spin_unlock(&l->lock);
74
-}
75
-
76
-#elif defined(CONFIG_DEBUG_LOCK_ALLOC)
7725 static inline void local_lock_acquire(local_lock_t *l)
7826 {
7927 lock_map_acquire(&l->dep_map);
....@@ -99,47 +47,6 @@
9947 static inline void local_lock_debug_init(local_lock_t *l) { }
10048 #endif /* !CONFIG_DEBUG_LOCK_ALLOC */
10149
102
-#ifdef CONFIG_PREEMPT_RT
103
-
104
-#define __local_lock(lock) \
105
- do { \
106
- migrate_disable(); \
107
- local_lock_acquire(this_cpu_ptr(lock)); \
108
- } while (0)
109
-
110
-#define __local_unlock(lock) \
111
- do { \
112
- local_lock_release(this_cpu_ptr(lock)); \
113
- migrate_enable(); \
114
- } while (0)
115
-
116
-#define __local_lock_irq(lock) \
117
- do { \
118
- migrate_disable(); \
119
- local_lock_acquire(this_cpu_ptr(lock)); \
120
- } while (0)
121
-
122
-#define __local_lock_irqsave(lock, flags) \
123
- do { \
124
- migrate_disable(); \
125
- flags = 0; \
126
- local_lock_acquire(this_cpu_ptr(lock)); \
127
- } while (0)
128
-
129
-#define __local_unlock_irq(lock) \
130
- do { \
131
- local_lock_release(this_cpu_ptr(lock)); \
132
- migrate_enable(); \
133
- } while (0)
134
-
135
-#define __local_unlock_irqrestore(lock, flags) \
136
- do { \
137
- local_lock_release(this_cpu_ptr(lock)); \
138
- migrate_enable(); \
139
- } while (0)
140
-
141
-#else
142
-
14350 #define INIT_LOCAL_LOCK(lockname) { LOCAL_LOCK_DEBUG_INIT(lockname) }
14451
14552 #define __local_lock_init(lock) \
....@@ -159,12 +66,6 @@
15966 local_lock_acquire(this_cpu_ptr(lock)); \
16067 } while (0)
16168
162
-#define __local_unlock(lock) \
163
- do { \
164
- local_lock_release(this_cpu_ptr(lock)); \
165
- preempt_enable(); \
166
- } while (0)
167
-
16869 #define __local_lock_irq(lock) \
16970 do { \
17071 local_irq_disable(); \
....@@ -175,6 +76,12 @@
17576 do { \
17677 local_irq_save(flags); \
17778 local_lock_acquire(this_cpu_ptr(lock)); \
79
+ } while (0)
80
+
81
+#define __local_unlock(lock) \
82
+ do { \
83
+ local_lock_release(this_cpu_ptr(lock)); \
84
+ preempt_enable(); \
17885 } while (0)
17986
18087 #define __local_unlock_irq(lock) \
....@@ -188,5 +95,3 @@
18895 local_lock_release(this_cpu_ptr(lock)); \
18996 local_irq_restore(flags); \
19097 } while (0)
191
-
192
-#endif