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 <[email protected]>
Signed-off-by: Domen Puncer <[email protected]>
---
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-03-05 16:11:45.000000000 +0100
+++ kj-domen/drivers/block/xd.c 2005-03-05 16:11:45.000000000 +0100
@@ -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;
_