Use interruptible sleep rather than uninterruptible to avoid perturbing load average. net/irda/sir_kthread.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/net/irda/sir_kthread.c~irda-interruptible-sleep drivers/net/irda/sir_kthread.c --- 25/drivers/net/irda/sir_kthread.c~irda-interruptible-sleep 2003-02-23 15:38:28.000000000 -0800 +++ 25-akpm/drivers/net/irda/sir_kthread.c 2003-02-23 15:38:36.000000000 -0800 @@ -151,7 +151,7 @@ static int irda_thread(void *startup) while (irda_rq_queue.thread != NULL) { - set_task_state(current, TASK_UNINTERRUPTIBLE); + set_task_state(current, TASK_INTERRUPTIBLE); add_wait_queue(&irda_rq_queue.kick, &wait); if (list_empty(&irda_rq_queue.request_list)) schedule(); _