summaryrefslogtreecommitdiff
path: root/include/linux/wait.h
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2025-12-13 12:18:20 +0300
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2025-12-13 12:18:20 +0300
commita4a508df2aa34f8650afde54ea804321c618f45f (patch)
treef75f10e7c54f991d7d859f8cbdcc8bcaed5bbd6f /include/linux/wait.h
parentc4b3133c6a2fc283cb3d34c64d40ed2fa254b608 (diff)
parent7d0a66e4bb9081d75c82ec4957c50034cb0ea449 (diff)
downloadlinux-a4a508df2aa34f8650afde54ea804321c618f45f.tar.xz
Merge tag 'v6.18' into next
Sync up with the mainline to bring in the latest APIs.
Diffstat (limited to 'include/linux/wait.h')
-rw-r--r--include/linux/wait.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/wait.h b/include/linux/wait.h
index 09855d819418..f648044466d5 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -965,6 +965,18 @@ extern int do_wait_intr_irq(wait_queue_head_t *, wait_queue_entry_t *);
__ret; \
})
+#define __wait_event_state_exclusive(wq, condition, state) \
+ ___wait_event(wq, condition, state, 1, 0, schedule())
+
+#define wait_event_state_exclusive(wq, condition, state) \
+({ \
+ int __ret = 0; \
+ might_sleep(); \
+ if (!(condition)) \
+ __ret = __wait_event_state_exclusive(wq, condition, state); \
+ __ret; \
+})
+
#define __wait_event_killable_timeout(wq_head, condition, timeout) \
___wait_event(wq_head, ___wait_cond_timeout(condition), \
TASK_KILLABLE, 0, timeout, \