Same response as to Andrew: AFAICS that just increases complexity.
The simple path for programmers is writing straightforward code that
does something like
blah
msleep()
blah
or in pccardd's case,
mutex_lock()
blah
mutex_unlock()
to permit sleeping without having to write more-complex code that deals
with context transitions.
For slow-path, infrequently executed code, it is best to keep it as
simple as possible.
Jeff
-