hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/kernel/locking/rtmutex_common.h
....@@ -15,7 +15,6 @@
1515
1616 #include <linux/rtmutex.h>
1717 #include <linux/sched/wake_q.h>
18
-#include <linux/sched/debug.h>
1918
2019 /*
2120 * This is the control structure for tasks blocked on a rt_mutex,
....@@ -30,8 +29,12 @@
3029 struct rb_node pi_tree_entry;
3130 struct task_struct *task;
3231 struct rt_mutex *lock;
32
+#ifdef CONFIG_DEBUG_RT_MUTEXES
33
+ unsigned long ip;
34
+ struct pid *deadlock_task_pid;
35
+ struct rt_mutex *deadlock_lock;
36
+#endif
3337 int prio;
34
- bool savestate;
3538 u64 deadline;
3639 };
3740
....@@ -127,14 +130,11 @@
127130 /*
128131 * PI-futex support (proxy locking functions, etc.):
129132 */
130
-#define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1)
131
-#define PI_REQUEUE_INPROGRESS ((struct rt_mutex_waiter *) 2)
132
-
133133 extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
134134 extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
135135 struct task_struct *proxy_owner);
136136 extern void rt_mutex_proxy_unlock(struct rt_mutex *lock);
137
-extern void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter, bool savetate);
137
+extern void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter);
138138 extern int __rt_mutex_start_proxy_lock(struct rt_mutex *lock,
139139 struct rt_mutex_waiter *waiter,
140140 struct task_struct *task);
....@@ -152,27 +152,9 @@
152152
153153 extern void rt_mutex_futex_unlock(struct rt_mutex *lock);
154154 extern bool __rt_mutex_futex_unlock(struct rt_mutex *lock,
155
- struct wake_q_head *wqh,
156
- struct wake_q_head *wq_sleeper);
155
+ struct wake_q_head *wqh);
157156
158
-extern void rt_mutex_postunlock(struct wake_q_head *wake_q,
159
- struct wake_q_head *wake_sleeper_q);
160
-
161
-/* RW semaphore special interface */
162
-struct ww_acquire_ctx;
163
-
164
-extern int __rt_mutex_lock_state(struct rt_mutex *lock, int state);
165
-extern int __rt_mutex_trylock(struct rt_mutex *lock);
166
-extern void __rt_mutex_unlock(struct rt_mutex *lock);
167
-int __sched rt_mutex_slowlock_locked(struct rt_mutex *lock, int state,
168
- struct hrtimer_sleeper *timeout,
169
- enum rtmutex_chainwalk chwalk,
170
- struct ww_acquire_ctx *ww_ctx,
171
- struct rt_mutex_waiter *waiter);
172
-void __sched rt_spin_lock_slowlock_locked(struct rt_mutex *lock,
173
- struct rt_mutex_waiter *waiter,
174
- unsigned long flags);
175
-void __sched rt_spin_lock_slowunlock(struct rt_mutex *lock);
157
+extern void rt_mutex_postunlock(struct wake_q_head *wake_q);
176158
177159 #ifdef CONFIG_DEBUG_RT_MUTEXES
178160 # include "rtmutex-debug.h"