Hi, Please consider applying. Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. The current code uses TASK_INTERRUPTIBLE, but does not check for signals, so I believe the change to msleep() should be ok. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/net/atm/resources.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN net/atm/resources.c~msleep-net_atm_resources net/atm/resources.c --- kj/net/atm/resources.c~msleep-net_atm_resources 2005-01-23 00:24:19.000000000 +0100 +++ kj-domen/net/atm/resources.c 2005-01-23 00:24:19.000000000 +0100 @@ -16,6 +16,7 @@ #include /* for barrier */ #include #include +#include #include /* for struct sock */ #include "common.h" @@ -138,8 +139,7 @@ void atm_dev_deregister(struct atm_dev * warning_time = jiffies; while (atomic_read(&dev->refcnt) != 1) { - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(HZ / 4); + msleep(250); if ((jiffies - warning_time) > 10 * HZ) { printk(KERN_EMERG "atm_dev_deregister: waiting for " "dev %d to become free. Usage count = %d\n", _