This violates the Cox & Torvalds theses that midlayers are evil[1]. The
I/O layer should throw it straight at the driver. If the driver chooses
to defer it or do scheduling (as most would) then it can call
io_schedule(mydev,myqueue,thisrequest)
or similar. There are devices out there that work best if you simply
slam requests into them as fast as possible. Its also sometimes worth
triming every last clock of latency on an idle device by doing
if(!busy)
do_it_now();
else
{
io_schedule();
/* Which will then do_it_now()..
[1] and Zubkoff and a lot of others ;)
Alan