The fucntions you can't call from at interrupt time in this respect,
are ones which modified current, as current has no real meaning.
What I think you need to do is split you routine in to different
functions for the portion between the various waits.
You can then at the end of one use the timer_queue to `schedule' the
next stage to run.
I did sometimg similiar for a driver I wrote at the beginning of the
year, however I was luckly and had a interrupt available to provoke the
next stage. It still took me a while to organise it correctly.
TTFN
-- Roger.
- 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/