- wait_event_lock_irq(wq, condition, lock);
- the waitqueue to wait on
- a C expression for the event to wait for
- a locked spinlock_t, which will be released before schedule and reacquired afterwards.
The process is put to sleep (TASK_UNINTERRUPTIBLE) until the condition evaluates to true. The condition is checked each time the waitqueue wq is woken up.
wake_up has to be called after changing any variable that could change the result of the wait condition.
This is supposed to be called while holding the lock. The lock is dropped before going to sleep and is reacquired afterwards.