Normally, I would use the sequence
* add_wait_queue
* set_current_state(TASK_UNINTERRUPTIBLE)
* check that you must wait, and that someone will wake you up.
* schedule().
If you use sleep_on(), then the sequence is
* check that you must wait, and that someone will wake you up.
* within sleep_on:
add_wait_queue
set_current_state(TASK_UNINTERRUPTIBLE)
schedule().
If this is really a problem, then (AFAICS) the DAC960 driver could lock
up.
-- Manfred- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/