Directly use wait-queues instead of the deprecated sleep_on(). This required adding a local waitqueue. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/drivers/block/xd.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN drivers/block/xd.c~sleep_on-drivers_block_xd drivers/block/xd.c --- kj/drivers/block/xd.c~sleep_on-drivers_block_xd 2005-04-05 12:56:26.000000000 +0200 +++ kj-domen/drivers/block/xd.c 2005-04-05 12:56:26.000000000 +0200 @@ -538,6 +538,7 @@ static inline u_char xd_waitport (u_shor static inline u_int xd_wait_for_IRQ (void) { + DEFINE_WAIT(wait); unsigned long flags; xd_watchdog_int.expires = jiffies + 8 * HZ; add_timer(&xd_watchdog_int); @@ -546,7 +547,9 @@ static inline u_int xd_wait_for_IRQ (voi enable_dma(xd_dma); release_dma_lock(flags); - sleep_on(&xd_wait_int); + prepare_to_wait(&xd_wait_int, &wait, TASK_UNINTERRUPTIBLE); + schedule(); + finish_wait(&xd_wait_int, &wait); del_timer(&xd_watchdog_int); xdc_busy = 0; _