Commit c0da3775 authored by Davide Libenzi's avatar Davide Libenzi Committed by Linus Torvalds

epoll keyed wakeups: introduce new *_poll() wakeup macros

Introduce new wakeup macros that allow passing an event mask to the wakeup
targets.  They exactly mimic their non-_poll() counterpart, with the added
event mask passing capability.  I did add only the ones currently
requested, avoiding the _nr() and _all() for the moment.
Signed-off-by: default avatarDavide Libenzi <davidel@xmailserver.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: David Miller <davem@davemloft.net>
Cc: William Lee Irwin III <wli@movementarian.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4ede816a
...@@ -158,21 +158,17 @@ wait_queue_head_t *bit_waitqueue(void *, int); ...@@ -158,21 +158,17 @@ wait_queue_head_t *bit_waitqueue(void *, int);
#define wake_up_interruptible_all(x) __wake_up(x, TASK_INTERRUPTIBLE, 0, NULL) #define wake_up_interruptible_all(x) __wake_up(x, TASK_INTERRUPTIBLE, 0, NULL)
#define wake_up_interruptible_sync(x) __wake_up_sync((x), TASK_INTERRUPTIBLE, 1) #define wake_up_interruptible_sync(x) __wake_up_sync((x), TASK_INTERRUPTIBLE, 1)
#ifdef CONFIG_DEBUG_LOCK_ALLOC
/* /*
* macro to avoid include hell * Wakeup macros to be used to report events to the targets.
*/ */
#define wake_up_nested(x, s) \ #define wake_up_poll(x, m) \
do { \ __wake_up(x, TASK_NORMAL, 1, (void *) (m))
unsigned long flags; \ #define wake_up_locked_poll(x, m) \
\ __wake_up_locked_key((x), TASK_NORMAL, (void *) (m))
spin_lock_irqsave_nested(&(x)->lock, flags, (s)); \ #define wake_up_interruptible_poll(x, m) \
wake_up_locked(x); \ __wake_up(x, TASK_INTERRUPTIBLE, 1, (void *) (m))
spin_unlock_irqrestore(&(x)->lock, flags); \ #define wake_up_interruptible_sync_poll(x, m) \
} while (0) __wake_up_sync_key((x), TASK_INTERRUPTIBLE, 1, (void *) (m))
#else
#define wake_up_nested(x, s) wake_up(x)
#endif
#define __wait_event(wq, condition) \ #define __wait_event(wq, condition) \
do { \ do { \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment