Use wait_event_interruptible() instead of the deprecated interruptible_sleep_on(). Patch is straight-forward as current sleep is conditionally looped. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/drivers/isdn/capi/capi.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-) diff -puN drivers/isdn/capi/capi.c~int_sleep_on-drivers_isdn_capi_capi drivers/isdn/capi/capi.c --- kj/drivers/isdn/capi/capi.c~int_sleep_on-drivers_isdn_capi_capi 2005-04-05 12:56:21.000000000 +0200 +++ kj-domen/drivers/isdn/capi/capi.c 2005-04-05 12:56:21.000000000 +0200 @@ -675,13 +675,8 @@ capi_read(struct file *file, char __user if (file->f_flags & O_NONBLOCK) return -EAGAIN; - for (;;) { - interruptible_sleep_on(&cdev->recvwait); - if ((skb = skb_dequeue(&cdev->recvqueue)) != 0) - break; - if (signal_pending(current)) - break; - } + wait_event_interruptible(cdev->recvwait, + ((skb = skb_dequeue(&cdev->recvqueue)) == 0)); if (skb == 0) return -ERESTARTNOHAND; } _