Use wait_event_interruptible() instead of the deprecated interruptible_sleep_on(). The first change is simply to clean up the code a little to make it clearer. The second actually does a replacement, mimicking exactly the first. I removed the #if 1/#else/endif logic, as it duplicated the same code. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/drivers/ieee1394/video1394.c | 22 ++++++---------------- 1 files changed, 6 insertions(+), 16 deletions(-) diff -puN drivers/ieee1394/video1394.c~int_sleep_on-drivers_ieee1394_video1394 drivers/ieee1394/video1394.c --- kj/drivers/ieee1394/video1394.c~int_sleep_on-drivers_ieee1394_video1394 2005-03-02 10:43:55.000000000 +0100 +++ kj-domen/drivers/ieee1394/video1394.c 2005-03-02 10:43:55.000000000 +0100 @@ -964,10 +964,9 @@ static int __video1394_ioctl(struct file } } #else - if (wait_event_interruptible(d->waitq, - d->buffer_status[v.buffer] - == VIDEO1394_BUFFER_READY) - == -ERESTARTSYS) + wait_event_interruptible(d->waitq, + (d->buffer_status[v.buffer] == VIDEO1394_BUFFER_READY)); + if (signal_pending(current)) return -EINTR; #endif d->buffer_status[v.buffer]=VIDEO1394_BUFFER_FREE; @@ -1126,19 +1125,10 @@ static int __video1394_ioctl(struct file d->buffer_status[v.buffer]=VIDEO1394_BUFFER_FREE; return 0; case VIDEO1394_BUFFER_QUEUED: -#if 1 - while (d->buffer_status[v.buffer]!= - VIDEO1394_BUFFER_READY) { - interruptible_sleep_on(&d->waitq); - if (signal_pending(current)) return -EINTR; - } -#else - if (wait_event_interruptible(d->waitq, - d->buffer_status[v.buffer] - == VIDEO1394_BUFFER_READY) - == -ERESTARTSYS) + wait_event_interruptible(d->waitq, + (d->buffer_status[v.buffer] == VIDEO1394_BUFFER_READY)); + if (signal_pending(current)) return -EINTR; -#endif d->buffer_status[v.buffer]=VIDEO1394_BUFFER_FREE; return 0; default: _